Shifting between electrode combinations in electrical stimulation device

ABSTRACT

The disclosure is directed to techniques for shifting between two electrode combinations. An amplitude of a first electrode combination is incrementally decreased while an amplitude of a second, or subsequent, electrode combination is concurrently incrementally increased. Alternatively, an amplitude of the first electrode combination is maintained at a target amplitude level while the amplitude of the second electrode combination is incrementally increased. The stimulation pulses of the electrode combinations are delivered to the patient interleaved in time. In this manner, the invention provides for a smooth, gradual shift from a first electrode combination to a second electrode combination, allowing the patient to maintain a continual perception of stimulation. The shifting techniques described herein may be used during programming to shift between different electrode combinations to find an efficacious electrode combination. Additionally, the techniques may be used for shifting between different electrode combinations associated with different stimulation programs or program sets.

This application is a continuation of U.S. application Ser. No.13/152,870 filed on Jun. 3, 2011, which is a continuation of U.S.application Ser. No. 12/406,607, filed Mar. 18, 2009, which is acontinuation of U.S. application Ser. No. 11/401,100, filed Apr. 10,2006 (issued Apr. 14, 2009 as U.S. Pat. No. 7,519,431), which is acontinuation-in-part of U.S. application Ser. No. 11/352,389, filed Feb.10, 2006, which claims the benefit of U.S. provisional application No.60/670,059, filed Apr. 11, 2005. This application claims the benefit ofthe above-identified applications. The entire content of each of theabove applications is incorporated herein by reference.

TECHNICAL FIELD

The invention relates to neurostimulation therapy and, moreparticularly, to selection of electrode combinations for delivery ofneurostimulation therapy to a patient.

BACKGROUND

Implantable neurostimulators may be used to deliver neurostimulationtherapy to patients to treat a variety of symptoms or conditions such aschronic pain, tremor, Parkinson's disease, epilepsy, urinary or fecalincontinence, sexual dysfunction, obesity, or gastroparesis. Animplantable medical device may deliver neurostimulation therapy vialeads that include electrodes located proximate to the spinal cord,pelvic nerves, stomach, or within the brain of a patient. In general,the implantable medical device delivers neurostimulation therapy in theform of electrical pulses.

A clinician selects values for a number of programmable parameters inorder to define the neurostimulation therapy to be delivered to apatient. For example, the clinician selects an amplitude, which may be acurrent or voltage amplitude, and pulse width for a stimulation waveformto be delivered to the patient, as well as a rate at which the pulsesare to be delivered to the patient. The clinician may also selectparticular electrodes within an electrode set to be used to deliver thepulses and the polarities of the selected electrodes. A group ofparameter values may be referred to as a program in the sense that theydrive the neurostimulation therapy to be delivered to the patient.

The process of selecting values for the parameters can be timeconsuming, and may require a great deal of trial and error before atherapeutic program is discovered. The “best” program may be a programthat best balances greater clinical efficacy and minimal side effectsexperienced by the patient. In addition, some programs may consume lesspower during therapy. The clinician typically needs to test a largenumber of possible electrode combinations within the electrode setimplanted in the patient, in order to identify an optimal combination ofelectrodes and associated polarities. An electrode combination is aselected subset of one or more electrodes located on one or moreimplantable leads coupled to an implantable neurostimulator. As aportion of the overall parameter selection process, the process ofselecting electrodes and the polarities of the electrodes can beparticularly time-consuming and tedious.

In some cases, the clinician may test electrode combinations by manuallyspecifying each combination based on intuition or some idiosyncraticmethodology. The clinician may then record notes on the efficacy andside effects of each combination after delivery of stimulation via thatcombination. In this manner, the clinician is able to later compare andselect from the tested combinations. As an example of the magnitude ofthe task, an implantable neurostimulator commonly delivers spinal cordstimulation therapy (SCS) to a patient via two leads that include eightelectrodes per lead, which equates to over 43 million potentialelectrode combinations.

In order to improve the efficacy of neurostimulation therapy,neurostimulators have grown in capability and complexity. Modernneurostimulators tend to have larger numbers of electrode combinations,larger parameter ranges, and the ability to simultaneously delivermultiple therapy configurations by interleaving stimulation pulses intime. Although these factors increase the clinician's ability to adjusttherapy for a particular patient or disease state, the burden involvedin optimizing the device parameters has similarly increased.Unfortunately, fixed reimbursement schedules and scarce clinic timepresent challenges to effective programming of neurostimulator therapy.

SUMMARY

In general, the disclosure is directed to techniques for shiftingstimulation energy between electrode combinations in an implantableneurostimulator. An electrode combination is a selected subset of one ormore electrodes located on one or more implantable leads coupled to animplantable neurostimulator. The electrode combination also refers tothe polarities of the electrodes in the selected subset. In theimplantable neurostimulator, neurostimulation energy is delivered todifferent electrode combinations on a time-interleaved basis.

The techniques described herein may be used during a test or evaluationmode to shift between different electrode combinations in an effort toidentify efficacious electrode combinations. Additionally, thetechniques may be used for shifting between different electrodecombinations associated with different stimulation programs or programsets during an operational mode. In either case, the neurostimulatorgradually transitions from a first electrode combination to a secondelectrode combination in incremental steps.

For example, the neurostimulator or programmer may incrementallydecrease an amplitude of a first electrode combination over a series oftime slots while concurrently increasing an amplitude of a secondelectrode combination over a series of alternating time slots.Alternatively, the amplitude of the first electrode combination may bemaintained at a target level while the amplitude of the second electrodecombination is incrementally increased. Then, the amplitude of the firstelectrode combination may be incrementally decreased after the amplitudeof the second electrode combination has reached the target level. Ineither case, the stimulator interleaves the stimulation pulses providedby the first and second electrode combinations in time at a sufficientlyhigh frequency so that the patient perceives the physiological effectsof the stimulation energy as smooth, or nearly simultaneous oroverlapping in time. Each time slot may include a single pulse ormultiple pulses from a given electrode combination.

In this manner, the time-interleaved stimulation energy is effective insimulating a continuous shifting of voltage or current amplitude fromone electrode combination to another. The amplitudes of the first andsecond electrode combinations are ramped downward and upward,respectively, in incremental steps until the amplitude of the secondelectrode combination reaches a target amplitude. Alternatively, thesecond electrode combination may be ramped upward while the firstelectrode combination is held constant, followed by ramping the firstelectrode combination downward while the second electrode combination isheld constant. The incremental steps may be different between rampingdownward or ramping upward. The incremental steps in amplitude can be ofa fixed size or may vary, e.g., according to an exponential, logarithmicor other algorithmic change. When the second electrode combinationreaches its target amplitude, or possibly before, the first electrodecombination can be shut off.

In a test mode, the shifting process between successive electrodecombinations may proceed under user control. In one embodiment, eachincremental step in the transition may be contingent on input from auser, such as a physician or the patient. For example, the programmermay perform each incremental step in the shift in response to userinput. In another embodiment, the programmer may proceed through all ofthe incremental steps automatically unless it receives input from theuser. During the test mode, the user may mark stimulation parameters andelectrode combinations that are found to be particularly efficacious.

User control may proceed in a time- or sequence-domain, with the useradvancing and reversing the shift progression in terms of the time of anincrement over a course of time, or the position of an increment withina sequence of defined increments. For example, the user controls maypresent a time-domain metaphor, such as that found within compact discplayers, or audio or video tape players, where the user has access toinput controls similar to play, stop, pause, rewind, and fast forward.Alternatively, user control may proceed in a planar domain, with theuser selecting steps up, down, left or right.

In one embodiment, the disclosure provides a method comprisingdelivering electrical stimulation to a patient via a first electrodecombination, delivering electrical stimulation to the patient via asecond electrode combination on a time-interleaved basis with theelectrical stimulation delivered via the first electrode combination,incrementally increasing an amplitude of the electrical stimulationdelivered via the second electrode combination while the electricalstimulation delivered via the second electrode combination is deliveredon a time-interleaved basis with the electrical stimulation deliveredvia the first electrode combination, and incrementally decreasing anamplitude of the electrical stimulation delivered via the firstelectrode combination while the electrical stimulation delivered via thesecond electrode combination is delivered on a time-interleaved basiswith the electrical stimulation delivered via the first electrodecombination.

The amplitude of the electrical stimulation delivered via the firstelectrode combination may be maintained, e.g., at a target level, whilethe amplitude of the electrical stimulation delivered via the secondelectrode combination is incrementally increased. Alternatively, theamplitude of the electrical stimulation delivered via the firstelectrode combination may be incrementally decreased while the amplitudeof the stimulation delivered via the second electrode combination isincrementally increased.

In another embodiment, the disclosure provides a system comprising amedical device that includes one or more electrodes, a pulse generatorto deliver electrical stimulation via the electrodes, and a switchdevice to couple the stimulation to selected electrodes. The system alsocomprises a programmer that programs the medical device, wherein theprogrammer controls the medical device to deliver electrical stimulationto a patient via a first electrode combination, deliver electricalstimulation to the patient via a second electrode combination on atime-interleaved basis with the electrical stimulation delivered via thefirst electrode combination, incrementally increase an amplitude of theelectrical stimulation delivered via the second electrode combinationwhile the electrical stimulation delivered via the second electrodecombination is delivered on a time-interleaved basis with the electricalstimulation delivered via the first electrode combination, andincrementally decrease an amplitude of the electrical stimulationdelivered via the first electrode combination while the electricalstimulation delivered via the second electrode combination is deliveredon a time-interleaved basis with the electrical stimulation deliveredvia the first electrode combination.

In an additional embodiment, the disclosure provides a medical devicecomprising one or more implantable leads that include a plurality ofelectrodes, and a pulse generator to deliver stimulation energy, aswitch device to couple the stimulation energy to selected electrodes.The medical device further comprises a processor to control the pulsegenerator and the switch device to deliver stimulation to the patient inaccordance with a plurality of programs. The processor controls thepulse generator and the switch device to deliver electrical stimulationto a patient via a first electrode combination, deliver electricalstimulation to the patient via a second electrode combination on atime-interleaved basis with the electrical stimulation delivered via thefirst electrode combination, incrementally increase an amplitude of theelectrical stimulation delivered via the second electrode combinationwhile the electrical stimulation delivered via the second electrodecombination is delivered on a time-interleaved basis with the electricalstimulation delivered via the first electrode combination, andincrementally decrease an amplitude of the electrical stimulationdelivered via the first electrode combination while the electricalstimulation delivered via the second electrode combination is deliveredon a time-interleaved basis with the electrical stimulation deliveredvia the first electrode combination.

In another embodiment, the disclosure provides a programmer comprising aprocessor that generates instructions to control an implantable pulsegenerator and deliver stimulation to a patient in accordance with aplurality of program. The instructions direct delivery of electricalstimulation to a patient via a first electrode combination, delivery ofelectrical stimulation to the patient via a second electrode combinationon a time-interleaved basis with the electrical stimulation deliveredvia the first electrode combination, incremental increases in anamplitude of the electrical stimulation delivered via the secondelectrode combination while the electrical stimulation delivered via thesecond electrode combination is delivered on a time-interleaved basiswith the electrical stimulation delivered via the first electrodecombination, and incremental decreases in an amplitude of the electricalstimulation delivered via the first electrode combination while theelectrical stimulation delivered via the second electrode combination isdelivered on a time-interleaved basis with the electrical stimulationdelivered via the first electrode combination. The programmer furthercomprises a telemetry interface to transmit the instructions to theimplantable pulse generator.

In another embodiment, the disclosure provides a system comprising anmedical device that includes one or more implantable leads that includea plurality of electrodes, a pulse generator to deliver electricalstimulation, and a switch device to couple the stimulation to selectedelectrodes. The system further comprises a programmer that programs themedical device, wherein the programmer controls the medical device todeliver electrical stimulation to a patient via a first electrodecombination, deliver electrical stimulation to the patient via a secondelectrode combination on a time-interleaved basis with the stimulationdelivered via the first electrode combination, and incrementally shiftthe delivery of stimulation from the first electrode combination to thesecond electrode combination.

In an additional embodiment, the disclosure provides a medical devicecomprising one or more implantable leads that include a plurality ofelectrodes, a pulse generator to deliver stimulation energy, a switchdevice to couple the stimulation energy to selected electrodes, and aprocessor to control the pulse generator and the switch device todeliver stimulation to the patient in accordance with a plurality ofprograms, wherein the processor controls the pulse generator and theswitch device to deliver stimulation to the patient via a firstelectrode combination and to deliver electrical stimulation to thepatient via a second electrode combination on a time-interleaved basiswith the stimulation delivered via the first electrode combination, andwherein the processor incrementally shifts the delivery of stimulationfrom the first electrode combination to the second electrodecombination.

In another embodiment, the disclosure provides a programmer comprising amemory that stores a first electrode combination and a second electrodecombination, and a processor that controls delivery of electricalstimulation to a patient via the first electrode combination, deliveryof electrical stimulation to the patient via the second electrodecombination on a time-interleaved basis with the electrical stimulationvia the first electrode combination, and incremental shifting of thedelivery of electrical stimulation from the first electrode combinationto the second electrode combination.

In a further embodiment, the disclosure provides computer-readable mediacomprising instructions that cause a processor to perform any of thetechniques described in this disclosure.

The details of one or more embodiments of the invention are set forth inthe accompanying drawings and the description below. Other features,objects, and advantages of the invention will be apparent from thedescription and drawings, and from the claims.

BRIEF DESCRIPTION OF DRAWINGS

FIG. 1 is a schematic diagram illustrating an exemplary system fordelivery and programming of neurostimulation therapy.

FIG. 2 is a schematic diagram illustrating an exemplary programmer forcontrolling an implantable neurostimulator to test electrodecombinations for generating neurostimulation therapy programs.

FIG. 3 is a schematic diagram illustrating an exemplary programmer tosearch stimulation programs for controlling an implantableneurostimulator to test electrode combinations.

FIG. 4 is a schematic diagram illustrating an exemplary programmer witha dead-man switch for controlling an implantable neurostimulator to testelectrode combinations.

FIG. 5 is a schematic diagram illustrating an exemplary programmer witha directional device for controlling an implantable neurostimulator totest electrode combinations.

FIG. 6 is a block diagram illustrating exemplary components of aprogrammer.

FIG. 7 is a block diagram illustrating exemplary components of animplantable neurostimulator.

FIG. 8 is a flow diagram illustrating exemplary operation of aprogrammer programming an implantable neurostimulator.

FIG. 9 is a flow diagram illustrating exemplary operation of aprogrammer testing electrode combinations.

FIG. 10 is a flow diagram illustrating another exemplary operation of aprogrammer testing electrode combinations.

FIG. 11 is a flow diagram illustrating exemplary operation of programmerthat receives input from a user to shift between electrode combinationsin accordance with the techniques of the invention.

FIG. 12 is a flow diagram illustrating exemplary operation of aneurostimulator shifting between electrode combinations while switchingneurostimulation therapy programs.

FIG. 13 is an exemplary timing diagram illustrating the shifting processbetween successive electrode combinations.

FIG. 14 depicts another exemplary timing diagram illustrating theinterleaving of stimulation energy to subsequent electrode combinationsin order to provide a smooth shift from a first electrode combination toa second electrode combination.

FIG. 15 is a screen illustration showing an exemplary user interface forconfiguring a programmer for electrode combination testing.

FIG. 16 is a screen illustration showing an exemplary user interface forinteracting with a user to calibrate detection and target amplitudes.

FIG. 17 is a screen illustration showing an exemplary user interface forinteracting with a user to control the shift between a first and secondelectrode combination.

FIG. 18 is a screen illustration showing a series of exemplary userinterfaces for configuring a programmer for electrode combinationtesting.

FIG. 19-22 are schematic diagrams illustrating another exemplaryprogrammer to search stimulation programs for controlling an implantableneurostimulator to test electrode combinations.

FIG. 23 is an exemplary timing diagram illustrating an alternativeprocess for shifting stimulation energy between successive electrodecombinations.

FIG. 24 is an exemplary timing diagram illustrating a gradual increasein stimulation energy delivered via a selected electrode combination inaccordance with the alternative shifting process of FIG. 23.

FIG. 25 is an exemplary graph illustrating a process for shiftingstimulation energy from a first electrode combination to a secondelectrode combination in accordance with the alternative shiftingprocess of FIG. 23.

FIG. 26 is an exemplary graph illustrating rescaling of the shiftingprocess of FIG. 25 when a target stimulation amplitude is increased ordecreased in accordance with the alternative shifting process of FIG.23.

FIG. 27 is an exemplary graph illustrating the interleaving ofstimulation energy to subsequent electrode combinations in order toprovide a smooth shift from a first electrode combination to a secondelectrode combination in accordance with the alternative process of FIG.23.

FIG. 28 is a flow diagram illustrating exemplary operation of aprogrammer testing electrode combinations in accordance with thealternative process of FIG. 23.

FIG. 29 is a flow diagram illustrating exemplary operation of programmerthat receives input from a user to shift between electrode combinationsin accordance with the alternative process of FIG. 23.

FIG. 30 is a flow diagram illustrating exemplary operation of programmerthat receives input from a user to shift between electrode combinationsin accordance with the alternative process of FIG. 23.

FIG. 31 is a flow diagram illustrating exemplary operation of aneurostimulator shifting between electrode combinations while switchingneurostimulation therapy programs in accordance with the alternativeprocess of FIG. 23.

FIGS. 32-39 are graphs illustrating a shifting process in accordancewith the alternative process of FIG. 23 in conjunction with an exemplaryscreen shot of a programmer illustrating a corresponding electrodediagram and stimulation parameters.

DETAILED DESCRIPTION

In general, the invention is directed to techniques for shifting betweentwo electrode combinations during delivery of neurostimulation energy ona time-interleaved basis. An electrode combination is a selected subsetof one or more electrodes located on one or more implantable leadscoupled to an implantable neurostimulator. The electrode combinationalso refers to the polarities of the electrodes in the selected subset.As an illustration, if two leads are provided, and one lead carrieselectrodes 0 through 7, and another lead carries electrodes 8-15, onesimple electrode combination is a combination of electrodes 6 and 7,with electrode 6 as a cathode and electrode 7 as an anode. Anotherexample electrode combination is electrodes 6, 7 and 14, with electrodes6 and 7 as anodes and electrode 14 as a cathode. Any number and polarityof electrodes may be selected as an electrode combination, providedthere is at least one anode and at least one cathode.

The techniques described herein may be used during a programming testmode, e.g., within a clinic, to shift between different electrodecombinations in an effort to identify efficacious electrode combinationsfor a patient who has been selected as a candidate for stimulationtherapy. Also, the techniques may be used in a screening mode in whichthe patient is evaluated for chronic implantation of a stimulator.Additionally, the techniques may be used for shifting between differentelectrode combinations associated with different stimulation programs orprogram sets in an operational mode, i.e., in normal usage by thepatient after programming of an implanted stimulator. In each case, theimplanted stimulator gradually shifts from a first electrode combinationto a second electrode combination, and so forth, in incremental steps.

As will be described, in accordance with some embodiments, a stimulatorincrementally shifts voltage or current amplitude between electrodecombinations in alternating time intervals, i.e., time slots, deliveredon a time-interleaved basis. Each time slot may include one or morepulses of stimulation energy delivered via one electrode combination.Hence, in a first time slot, one or more stimulation pulses aredelivered via a first electrode combination and, in a second time slot,one or more stimulation pulses are delivered via a second electrodecombination. Depending on the length of the time slot, and the pulsewidth and pulse rate of the stimulation energy, a time slot may containone pulse or many pulses. The testing of programming of electrodecombinations can be accelerated to improve the chances of identifying anelectrode combination and parameter settings that yield efficacioustherapy. For SCS involving two leads with eight electrodes each, thenumber of electrode combination possibilities is well over 43 million.By directing the stimulator through a series of incremental voltage orcurrent amplitude shifts, the speed and ease with which electrodecombinations may be tried is increased.

The incremental shifting of voltage or current amplitude may becontrolled automatically or in response to user input. The user inputmay specify incremental forward advancement or reversal of amplitudeshifting among a series of successive electrode combinations.Alternatively, or additionally, the user input may specify a directionaltransition from one electrode combination to another. In each case, theincremental shifting of voltage or current amplitude is simulated bydelivering stimulation energy to different electrode combinations inalternating, time-interleaved time slots. For example, individualstimulation pulses may be applied to different electrode combinations onan alternating, time-interleaved basis. Alternatively, groups ofstimulation pulses may be applied to different electrode combinations inalternating, time-interleaved time slots. In this manner, a singlestimulation pulse generator may be, in effect, multiplexed across theelectrode combinations. However, the use of multiple stimulation pulsegenerators to deliver stimulation energy to different electrodecombinations is also possible.

The amplitude shifting techniques described in this disclosure mayprovide a rapid way to scan electrode combinations across a lead or setof leads, allowing the therapeutic effects of the lead to be quicklyevaluated. As an example, a clinician may start with a bipolar electrodecombination at the distal end of a lead and then direct the stimulatorto incrementally select other bipolar electrode combinations along thelength of the lead, e.g., from the distal end to the proximal end. Inthis manner, the clinician does not need to reset the amplitude andelectrode combination for every step of the process.

In addition, the amplitude shifting techniques may provide an efficientway to explore the electrode space defined by a given lead or lead set,allowing many neighboring therapy options to be tried in quicksuccession. For example, the clinician may select a combination ofelectrodes and then shift the chosen combination up or down a lead, orleft and right between adjacent leads, while the patient reportsperceived efficacy of the combinations, including side effects, ifapplicable. Again, a voltage or current amplitude is applied toelectrode combinations in alternating, time-interleaved time slots tosimulate gradual amplitude shifting between the successive electrodecombinations. Notably, the shifting may proceed in forward or reverse sothat the clinician may quickly revisit an electrode combination, ifdesired.

The simulation of gradual shifting over a series of time-interleavedtime slots avoids a sudden, full-amplitude jump from one electrodecombination to another, which could be disconcerting to the patient.Instead, amplitudes applied to electrode combinations during transitionfrom one electrode to another are incrementally adjusted to produce asensation of gradual transition for the patient. In this manner, aprogramming clinician can rapidly scan through an electrode combinationspace during programming. Also, during ordinary operation of thestimulator, similar technique can be applied to transition betweenelectrode combinations associated with programs manually selected by thepatient or automatically selected by the stimulator.

FIG. 1 is a schematic diagram illustrating an exemplary system 10 forprogramming neurostimulation therapy and for delivering neurostimulationtherapy to a patient 12. System 10 includes an implantableneurostimulator 14 that delivers neurostimulation therapy to patient 12and a programmer 11 for programming implantable neurostimulator 14.Neurostimulator 14 delivers neurostimulation therapy to patient 12 vialeads 16A and 16B (collectively “leads 16”). Leads 16 may, as shown inFIG. 1, be implanted proximate to spinal cord 18 of patient 12 todeliver spinal cord stimulation (SCS) therapy to patient 12. Spinal cordstimulation may be used, for example, to reduce pain experienced bypatient 12. Although an implantable neurostimulator 14 is described forpurposes of illustration, various embodiments of this disclosure alsomay be applicable to external neurostimulators that reside outside thepatient's body, and deliver stimulation therapy using one of moreimplanted leads deployed via a percutaneous port. Leads 16 may also belocated at other nerve or tissue sites within patient 12. In addition,system 10 is not limited to spinal cord stimulation, and may beapplicable to other electrical stimulation applications including pelvicfloor stimulation, deep brain stimulation, cortical surface stimulation,neuronal ganglion stimulation, gastric stimulation, peripheral nervestimulation, or subcutaneous stimulation. Such therapy applications maybe targeted to a variety of disorders such as chronic pain, peripheralvascular disease, angina, headache, tremor, Parkinson's disease,epilepsy, urinary or fecal incontinence, sexual dysfunction, obesity, orgastroparesis.

Neurostimulator 14 delivers neurostimulation therapy to patient 12according to one or more neurostimulation therapy programs. Aneurostimulation therapy program may specify an electrode combinationand values for a number of parameters associated with neurostimulationtherapy delivered via the electrode combination. The parameters mayinclude stimulation pulse voltage or current amplitudes, pulse widths,pulse rates, and other appropriate parameters such as duration or dutycycle. Leads 16 each include one or more electrodes (not shown in FIG.1). The program further specifies an electrode combination in terms ofelectrodes that have been selected to deliver pulses according to theprogram and the polarities of the selected electrodes.

Two parameters for optimization of therapy are the electrode combinationand the stimulation amplitude. The selection of electrodes determineswhich tissues are stimulated and, therefore, which physiological effectsare perceived. Stimulation voltage or current amplitude determines theintensity and the extent of those effects. These electrode combinationand stimulation amplitude settings are tightly coupled. A comfortablestimulation amplitude for one electrode combination might beuncomfortable or imperceptible for a second electrode combination.

Programmer 11 provides a programming interface that simulates theshifting of stimulation parameters smoothly from one electrodecombination to a second electrode combination in a manner gradual enoughto allow adjustments of amplitude should the sensation becomeuncomfortable or imperceptible to the patient during the shiftingprocess. This gradual shifting is accomplished by the adjustment ofstimulation voltage or current amplitudes of two or more electrodecombinations having output pulses or pulse groups that are interleavedin time.

Neurostimulator 14 may deliver neurostimulation therapy to patient 12according to a plurality of programs for a single symptom area, such asa number of leg pain programs. Neurostimulator 14 may have differentprogram parameters for each of the leg pain programs based on a positionof patient 12, an activity rate of patient 12, or other patientparameters. For example, neurostimulator 14 may deliver neurostimulationtherapy to patient 12 during a first leg pain program using a firstelectrode combination when patient 12 is lying down and deliverneurostimulation therapy to patient 12 using a second leg pain programvia a second electrode combination when patient 12 is standing. In someembodiments, patient 12 may use programmer 11 to input parameters toindicate posture changes, such as sitting, standing, or lying down. Inother embodiments, neurostimulator 14 may include an orientation deviceto automatically determine the position of patient 12. The orientationdevice may be similar to an accelerometer or gyroscope.

In accordance with this disclosure, neurostimulator 14 is programmed tosimulate a gradual shift between different electrode combinations,either for program transitions during clinician programming or duringnormal operation after programming has been completed. Neurostimulator14 may shift between different program electrode combinations usingincremental steps. For example, an amplitude of an initial electrodecombination associated with the first program is incrementally decreasedover a series of pulses or time slots, while an amplitude of the nextelectrode combination associated with the second program isincrementally increased over a series of alternating pulses or timeslots. In alternative embodiments, e.g., as described later in thisdisclosure with respect to FIGS. 23-39, the first electrode combinationmay be maintained at a constant target amplitude until the secondelectrode combination reaches the target amplitude, at which time theamplitude of the first electrode combination may be incrementallydecreased while the second electrode combination is maintained at theconstant target amplitude. The first and second programs deliver one ormore stimulation pulses in assigned time slots, such that stimulationenergy is delivered by the electrode combinations on a time-interleavedbasis.

An embodiment in which the amplitudes of stimulation energy deliveredvia the first and second electrode combinations are ramped downward andupward, respectively, will be described first. Specifically, theamplitudes of the first and second electrode combinations are rampeddownward and upward, respectively, in incremental steps until theamplitude of the second electrode combination reaches a targetamplitude. The incremental steps can be of fixed size or may varyaccording to an exponential, logarithmic or algorithmic change inaccordance with the particular stimulation program. The incrementalsteps may also vary by a linear function, power law, or other function.The incremental steps may be taken automatically or under user control.In addition, the beginning amplitude of any electrode combination may bea non-zero amplitude. When the second electrode combination reaches itstarget amplitude, the first electrode combination associated with thefirst neurostimulation therapy program is shut off. These incrementaladjustment techniques support perception of a smooth shift betweenprograms. The techniques of the invention may further be used to shiftbetween electrode combinations associated with program sets. A programset refers to a plurality of programs for treating different symptomareas that are provided to the patient virtually simultaneously usingtime-division multiplexing.

A programmer user, such as the clinician or patient 12, may useprogrammer 11 to program neurostimulation therapy for patient 12. Inparticular, the user may use programmer 11 to create neurostimulationtherapy programs and update the neurostimulation therapy programsdelivered by neurostimulator 14. As part of the program creationprocess, programmer 11 allows the user to evaluate electrodecombinations that enable neurostimulator 14 to deliver neurostimulationtherapy that is desirable in terms of, for example, symptom relief,coverage area relative to symptom area, and lack of side effects.Programmer 11 may also allow the user to evaluate electrode combinationsthat enable neurostimulator 14 to deliver effective neurostimulationtherapy with desirable device performance characteristics, e.g., lowbattery consumption.

Programmer 11 controls neurostimulator 14, e.g., by instructionsdelivered via wireless telemetry, to test electrode combinations inorder to allow a user to identify desirable combinations. Programmer 11controls neurostimulator 14 to test a number of electrode combinationsand allows the user to select particular electrode combinations thatprovide efficacious results. Programmer 11 may, for example, test apre-defined sequence of electrode combinations, automatically identifythe sequence of electrode combinations to test as the testing processprogresses, or test electrode combinations in respond user input. Ineach case, neurostimulator 14 gradually shifts between differentelectrode combinations, as described herein.

As will be described in greater detail below, programmer 11 graduallyshifts stimulation from a first electrode combination to a secondelectrode combination by incrementally adjusting stimulation amplitudesof the two electrode combinations and interleaving one or more outputpulses in time. Although the electrode combinations do not deliverstimulation energy at the same time, the rate at which pulses or pulsegroups in the time slots are interleaved serves to simulate a smoothshift of stimulation energy between electrode combinations. In otherwords, stimulation is delivered on a time-interleaved basis in timeslots via respective electrode combinations at a sufficiently highfrequency so that the patient perceives an overlap in the physiologicaleffects of the interleaved time slots.

Programmer 11 initially programs neurostimulator 14 to gradually shiftfrom a first electrode combination to a second electrode combination,then from the second electrode combination to a third electrodecombination and so forth, through an nth electrode combination. Theprocess may continue until an entire or partial set of electrodecombinations is tested, or the physician or patient identifies aparticularly efficacious electrode combination. In either case, the usermay return to electrode combinations that were marked as particularlyefficacious and optimize the parameter settings for those electrodecombinations.

The shifting feature described herein may be embedded as a singlefunction within a full featured programmer, which includes the option toprogram parameters incorporating traditional programming tools, as wellas the diagnostic, measurement, and other features necessary to managean implantable neurostimulator. Alternatively, the shifting featurecould be deployed as a stand alone tool in a clinician programmer orpatient programmer. Moreover, the shifting process may be executed byneurostimulator 14 in response to instructions from a clinicianprogrammer during programming at a clinic, in response to instructionsfrom a patient programmer during ordinary, chronic usage of theneurostimulator by a patient, or in response to instructions generatedby a processor within the neurostimulator itself.

In some embodiments, the instructions generated by the clinicianprogrammer or patient programmer may specify each shift increment in thetransition from one electrode combination to another. In other cases,the instructions generated by clinician programmer or patient programmermay simply specify movement from one electrode combination to anotherelectrode combination, or specify selection of a new program thatrequires such movement. In this latter case, neurostimulator 14 mayexecute the full shifting of amplitude from one electrode combination toanother, as instructed by a clinician programmer or patient programmer,as a series of incremental shifting steps. As a further alternative,neurostimulator 14 may execute an electrode combination shiftautomatically, without receiving external instructions, e.g., inresponse to timing, patient activity or patient posture triggers thatspecify program changes in response to various sensed or tracked events.

During clinic evaluation of different electrode combinations forprogramming of neurostimulator 14, the shift process between subsequentelectrode combinations proceeds under user control. In one embodiment,each incremental step in the shift may be contingent on input from theuser. For example, programmer 11 may wait for the user to actuate aninput device before performing the next incremental step in the shift.In another embodiment, programmer 11 may proceed through the incrementalsteps automatically unless it receives input from the user. For example,the user may control a dead man switch, and programmer 11 may cease theincremental steps upon deactivation of the dead man switch.

The user may control the sequence of electrode combinations using atime-domain metaphor, such as that found within compact disc players, oraudio or video tape players. For example, in some embodiments,programmer 11 may provide input controls similar to play, stop, pause,rewind, and fast forward. These controls may permit the user to shiftforward and backward between electrode combinations, as well as betweenincremental amplitude adjustments during shifting from one electrodecombination to another.

Such controls may be in addition to amplitude, pulse width and rateadjustment controls, and may be operated by a physician or patient 12.Alternatively, the user may be able to control the sequence of electrodecombinations using a directional input mechanism, such as a joystick,and a mapping program that maps the joystick movement to a particularelectrode combination. In either case, programmer 11 shifts between eachof the electrode combinations using shifting techniques describedherein.

Additionally, programmer 11 may provide the user with the ability tocontrol the overall intensity of the stimulations. Programmer 11 may,for example, include an input mechanism that allows the user to increaseor decrease the intensity of the stimulations at any point during theshifting process to maintain comfortable sensations. In response toreceiving input to increase or decrease the intensity of thestimulation, programmer 11 may adjust the intensity of one or both ofthe currently active programs as well as the target amplitude towardswhich the stimulation amplitude is progressing.

Programmer 11 may perform the same process to develop programs for othersymptom areas. After developing a neurostimulation therapy program forall of the symptom areas of patient 12, programmer 11 assembles theindividual programs into a program set and communicates the program setto neurostimulator 14. The program set may be delivered on atime-interleaved basis. For example, each program in the program set maybe applied at a particular time, followed by each other program insuccession, such that different stimulation parameters, and potentiallydifferent electrode combinations, are activated at different times, on atime-interleaved basis.

In order to control neurostimulator 14 to test electrode combinations,programmer 11 may communicate with neurostimulator 14 via wirelesstelemetry techniques known in the art. For example, programmer 11 maycommunicate with neurostimulator 14 via an RF telemetry head (not shown)or by local area telemetry. Information identifying desirablecombinations of electrodes identified by the clinician may be stored aspart of the neurostimulation therapy programs. Neurostimulation therapyprograms created by the clinician using programmer 11 may be transmittedto neurostimulator 14 via telemetry, and/or may be transmitted toanother programmer (not shown), e.g., a patient programmer, that is usedby patient 12 to control the delivery of neurostimulation therapy byneurostimulator 14 during daily use.

Programmer 11 may include different programming modes. In oneprogramming mode, programmer 11 supports testing of different electrodecombinations and stimulation parameters. In this test mode, programmer11 may receive user input and transmit programming signals toneurostimulator 14 to repeatedly change the electrode combinations,stimulation parameters, or both, based on the user input. The test modemakes use of the shifting techniques described herein. In anotherprogramming mode, programmer 11 transmits one or more program groups toneurostimulator 14 for operation. The program groups specify electrodecombinations and stimulation parameters selected based on the resultsobtained during the test mode. Neurostimulator 14 stores the programgroups within internal memory.

The invention is not limited to the combination of leads 16 shown inFIG. 1. For example, system 10 may include only a single lead or morethan two leads implanted proximate spinal cord 18. Furthermore, theinvention is not limited to the delivery of SCS therapy. For example,one or more leads 16 may extend from neurostimulator 14 to the brain(not shown) of patient 12, and neurostimulator 14 may deliver deep brainstimulation (DBS) therapy to patient 12 to treat tremor or epilepsy. Asfurther examples, one or more leads 16 may be implanted proximate to thepelvic nerves (not shown) or stomach (not shown), and neurostimulator 14may deliver neurostimulation therapy to treat incontinence orgastroparesis.

In some embodiments, electrode combination testing may be a continuingprocess throughout stimulation therapy. As patient 12 becomes accustomedto the therapy, the current stimulation programs may become lesseffective while other stimulation programs previously deemed ineffectivemay offer more effective therapy. To overcome these physiologicalchanges, patient 12 may repeat electrode combination testing when thecurrent therapy no longer provides relief. Alternatively,neurostimulator 14 may prompt patient 12 to repeat electrode combinationtesting upon unusual stimulation activity or a programmed schedule.

While programmer 20 of FIG. 1 and other programmers described herein aredescribed as individual units, a programmer may instead be shown on atouch screen, or other display, of a larger computer. In other words,programmer 20, or other programmers, may be virtual programmers thatallow a user to interact with them through the touch screen or otherpointing device. Operation of a virtual programmer may be substantiallysimilar to an individual, or standalone, programmer.

FIG. 2 is a schematic diagram illustrating an exemplary programmer 20for controlling neurostimulator 14 to test electrode combinations forgenerating neurostimulation therapy programs. Programmer 20 includes adisplay 22 to display information to a program user (not shown in FIG.2). Display 22 may, for example, comprise an LCD or LED display.Programmer 20 also includes a keypad 24, which may be used by the userto interact with programmer 20.

Keypad 24 includes shift control buttons 26, amplitude adjustmentbuttons 28A and 28B (“amplitude adjustment buttons 28”), and a markbutton 29. The user interacts with programmer 20 via keypad 24 to testelectrode combinations in accordance with the techniques of theinvention. In addition to shift control buttons 26, amplitude adjustmentbuttons 28, and a mark button 29, keypad 24 may include an alphanumerickeypad or additional keys associated with particular functions.

Although programmer 20 of FIG. 2 includes a keypad 24, a keypad is notrequired. In some embodiments, for example, display 22 may be a touchscreen display, and the user may interact with programmer 20 via thetouch screen display 22. The user may also interact with programmer 20using peripheral pointing devices, such as a stylus, scroll wheel,mouse, or any combination of such devices, as well as hard keys or softkeys.

Programmer 20 controls neurostimulator 14 to test a number of electrodecombinations, and allows the user to identify particular electrodecombinations that provide efficacious results. Programmer 20 may, forexample, control neurostimulator 14 to test a pre-defined sequence ofelectrode combinations or include a program for automaticallyidentifying the sequence of electrode combinations to test. Programmer20 controls neurostimulator 14 to shift between each of the electrodecombinations by shifting stimulation energy from a first electrodecombination to a second electrode combination in incremental steps on atime-interleaved basis. Specifically, programmer 20 gradually increasesthe amplitude of stimulation of the second electrode combination over aseries of pulses or time slots while concurrently decreasing theamplitude of stimulation of the first electrode combination over aseries of alternating pulses or time slots.

As described briefly above, the shifting process may be responsive toinput from the user. For example, programmer 20 may require that theuser actuate one of shift control buttons 26 between incremental steps(up/down) in the shift. If the user does not actuate one of shiftcontrol buttons 26, programmer 20 does not further adjust the amplitudesof the pulses. This feature helps to ensure that patient 12 remainscomfortable during the incremental shifting process. If an incrementalshift does result in discomfort to patient 12, a further incrementalstep would likely increase that discomfort. Therefore, requiring theuser to actuate shift control buttons 26 reduces the likelihood of anincremental step being performed to the further discomfort of patient12.

The amplitudes of the first and second electrode combinations are rampeddownward and upward, respectively, until the amplitude of the secondelectrode combination reaches a target amplitude. The target amplitudemay, for example, be a strong but comfortable (SBC) level measuredduring a calibration stage. An SBC level is a stimulation level at whichpatient 12 notices a therapeutic stimulation effect without the therapyinducing pain or discomfort. The first electrode combination is shut offupon the second electrode combination reaching the target amplitude, anda subsequent (e.g., third) electrode combination is turned on.

The subsequent electrode combination is the next electrode combinationof the pre-defined or calculated electrode combination sequence. Thesubsequent electrode combination of the sequence may be an adjacentelectrode combination. Adjacent electrode combinations include electrodecombinations generated by shifting an electrode combination patternupward or downward on a lead or by shifting left or right across columnsin an array of leads or electrodes. For example, in a single leadnumbered 0-7, the bipoles at 0-1 and 2-3 would be adjacent to the bipoleat 1-2. For an array of electrodes or the parallel implant of linearleads, the bipole at 1-2 in a first column (or first linear lead) wouldbe considered adjacent to the bipole in the second column at level 1-2.

The subsequent electrode combinations of the sequence, however, need notbe adjacent electrode combinations. Although shifting between adjacentelectrodes is the most likely use of this shifting feature, this featurecould also be used to shift stimulation gradually between non-adjacentor unrelated combinations. This may be desirable in the case where the‘adjacency’ in sensation does not directly correlate with adjacency onthe lead, which may be due to nerve branching or other anatomicalstructure. Nonadjacent shifting may simply prove more pleasing to thepatient than the traditional method of stopping one group of settingsprior to beginning stimulation on a second group.

When the shifting process is finished, a subset of marked points, i.e.,electrode combinations and parameters, may be further refined usingoptimization tools similar to those described in U.S. Published PatentApplication No. 2004/0215288, entitled “Identifying combinations ofelectrodes for neurostimulation therapy,” to Lee et al., the entirecontent of which is incorporated herein by reference. For example, anumber of neighboring electrode combinations may be selected andevaluated.

Programmer 20 shifts from the second electrode combination to the thirdin the same manner described above. Programmer 20 continues to shiftbetween subsequent electrode combinations until all of the electrodecombinations of the sequence have been tested. The “up” shift controlbutton 26 serves to shift the process forward from a first electrodecombination to a second electrode combination in an incremental step.

For example, upon one actuation of the “up” shift control button 26, thestimulation amplitude on the first electrode combination decreases byone step, while the stimulation amplitude on the second electrodecombination increases by one step. In this case, the shift sequencemoves forward. Likewise, the “down” shift control button 26 serves toshift the process backward from the second electrode combination to thefirst electrode combination. Upon one actuation of the “down” shiftcontrol button 26, the stimulation amplitude on the first electrodecombination increases by one step, while the stimulation amplitude onthe second electrode combination decreases by one step. In this case,the shift sequence moves backward.

In the example of FIG. 2, the user interacts with programmer 20 via markbutton 29 to indicate points at which the parameters of stimulationyield efficacious results. The user may actuate mark button 29 at anytime throughout the electrode testing sequence. Furthermore, the usermay actuate mark button 29 numerous times throughout the electrodetesting sequence. Programmer 20 stores the current parameter values ofthe stimulations upon actuation of mark button 29. For example, theprogrammer 20 may store the amplitude values for each of the electrodecombinations, the current target amplitude, i.e., the SBC level, andother parameter values necessary to generate a program in memory. Afterprogrammer 20 completes the electrode testing sequence, the user mayreturn to the marked settings to optimize the parameters. The user may,for example, switch between two or more marked settings for the purposeof comparison.

The user may also interact with programmer 20 via amplitude adjustmentbuttons 28 to control the overall intensity of the stimulation. The usermay adjust the overall intensity of the stimulations at any point duringthe electrode testing sequence using amplitude adjustment buttons 28.The user may, for example, actuate the “−” amplitude adjustment button28B to decrease the overall intensity of stimulations when thestimulations become uncomfortable. Likewise, the user may actuate the“+” amplitude adjustment button 28A to increase the overall intensity ofthe stimulations when patient 12 can no longer perceive the stimulationor desires more therapy. In response to actuation of one of amplitudeadjustment buttons 28, programmer 20 adjusts the amplitudes of one orboth of the electrode combinations as well as the target amplitudetowards which it is working. Programmer 20 also may include inputs forpulse width and pulse rate adjustments.

FIG. 3 is a schematic diagram illustrating another exemplary programmer30 for controlling neurostimulator 14 to test electrode combinations forgenerating neurostimulation therapy programs. Programmer 30 conformssubstantially to programmer 20 illustrated in FIG. 2, but programmer 20incorporates a different set of shift control buttons. Shift controlbuttons 31 include a play button 32, stop button 34, fast forward button36, rewind button 38, and pause button 37. Also included are amplitudeadjustment buttons 35A and 35B and mark button 39. With programmer 30,the user input may be obtained using a time-domain metaphor, such asthat found within compact disc players, or audio or video tape players.Other input devices with similar forward/rewind functionality, such as ascroll wheel, may also be used. An example of a scroll wheel is thetouch scroll wheel implemented by the iPod devices manufactured by AppleComputer.

The user interacts with programmer 30 in a slightly different fashion tocontrol the shift. Unlike programmer 20, programmer 30 does not requirethe user to provide input between each incremental step of the shift.Instead, the user initiates the electrode combination testing sequenceby pressing play button 32. Programmer 30 incrementally adjusts thestimulation amplitude of subsequent electrode combinations in apredefined sequence until the user presses stop button 34.

In this manner, programmer 30 proceeds through the incremental stepsautomatically unless it receives input from the user. The user may alsouse fast forward button 36 to move more quickly through the sequence andrewind button 38 to return to a previous location in the sequence. Inthis way, the user may return to an electrode combination and parametersetting quickly and repeatedly, if desired. This feature may beespecially useful for the patient in rewinding, or revisiting, thesequence to reevaluate a point in the sequence observed to provideefficacy.

Programmer 30 is not limited to the shift control buttons depicted inFIG. 3. For example, programmer 30 may include other types of shiftcontrol buttons such as a scroll wheel to allow the user to move throughthe electrode combination testing more quickly. Like programmer 20 ofFIG. 2, the user may interact with the programmer to indicate points atwhich the parameters of stimulation yield efficacious results using markbutton 39 and to control parameters such as amplitude, pulse width andpulse rate using buttons 35, respectively.

FIG. 4 is a schematic diagram illustrating another exemplary programmer40 for controlling neurostimulator 14 to test electrode combinations forgenerating neurostimulation therapy programs. Programmer 40 conformssubstantially to programmer 30 illustrated in FIG. 3, but incorporatesdead-man switch 42 instead of a play button 32, stop button 34, fastforward button 36 and rewind button 38. Programmer 30 incrementallyshifts the stimulation energy between successive electrode combinationsin the sequence while dead-man switch 42 is actuated. Upon release ofdead-man switch 42, programmer 40 no longer adjusts the amplitudes ofthe electrode combinations. In this manner, the user can start and stopthe shift sequence. Programmer 40 also includes screen 41, amplitudebuttons 43A and 43B, and mark button 44, similar to programmers 20 and30.

FIG. 5 is a schematic diagram illustrating an exemplary programmer 50for controlling neurostimulator 14 to test electrode combinations forgenerating neurostimulation therapy programs. Programmer 50 includes adisplay 52 to display information to a program user (not shown in FIG.5). Display 52 may, for example, comprise an LCD or LED display. In someembodiments, a touch screen display may be provided. As shown in FIG. 5,a directional controller 54, a mark button 56 and amplitude adjustmentbuttons 58A and 58B (“amplitude adjustment buttons 58”) are disposedwithin and/or on programmer 50.

In the illustrated embodiment, directional controller 54 is a joystick,and mark button 56 is disposed on an end of directional controller 54.Mark button 56 may be located at any place on directional controller 54or programmer 50. In other embodiments, any or all of directionalcontroller 54, mark button 56, and amplitude adjustment buttons 56 maybe software screen objects on a display. For example, in someembodiments, directional controller 54 may take the form of arepresentation of, e.g., a joystick, or up-down and side-to-side arrows,on a touch-screen display that is capable of being manipulated by auser.

Programmer 50 generates an output as a function of the direction ofmanipulation of directional controller 54. In particular, programmer 50uses a map to select combinations of electrodes located on leads 16 as afunction of the direction of manipulation of directional controller 54.Directional controller 54 thus allows a user to provide input to selectelectrode combinations. In this manner, the user may manipulatedirectional controller 54 to search for an electrode combination thatprovides effective stimulation to patient 12.

When the user manipulates directional controller 54 beyond a certainlocation to select a new electrode combination, programmer 50 shiftsbetween the electrode combinations in accordance with the shifttechniques described herein. The amplitudes of the pulses on the firstand second electrode combinations are incrementally ramped downward andupward, respectively, on a time-interleaved basis over a series of timeslots, until the amplitude of the second electrode combination reaches atarget amplitude. The incremental steps in the shift may be contingenton input from the user or may proceed automatically. For example, theincremental steps may proceed as a function of the rate or amount ofdirectional movement indicated by directional controller 54.

Like programmer 20 of FIG. 2, the user may interact with programmer 50to indicate points at which the parameters of stimulation yieldefficacious results using mark button 56. In the example of FIG. 5, markbutton 56 may be mounted on a joystick, e.g., for thumb actuation.Additionally, the user may interact with programmer 50 to control theoverall intensity of the stimulations using adjustment buttons 58, e.g.,for amplitude, pulse width and pulse rate.

In some embodiments, directional controller 54 may provide forcefeedback to the user. For example, certain electrode combinations maycause discomfort or pain to patient 12. These locations may bepre-programmed or marked once discovered during testing. These locationsmay be blocked through the use of feedback in controller 54. In thiscase, controller 54 may be physically prevented from moving to definedlocations of programmer 50. Alternatively, electrode combinationsassociated with specific control 54 locations may not be turned on whencontroller 54 is moved to these locations.

FIG. 6 is a block diagram illustrating an example configuration of aprogrammer 60, such as any of programmers 11, 20, 30, 40 and 50 of FIGS.1-5. A user may interact with a processor 62 via a user interface 64 inorder to identify efficacious electrode combinations as describedherein. User interface 64 may include a display and one or more inputmechanisms. Using programmer 20 of FIG. 2 as an example, user interface64 may include display 22, arrow buttons 26, amplitude adjustmentbuttons 28, and a mark button 29. Processor 62 may also provide agraphical user interface (GUI) via user interface 64 to facilitateinteraction with the user. Processor 62 may include a microprocessor, amicrocontroller, a DSP, an ASIC, an FPGA, or other equivalent discreteor integrated logic circuitry.

Programmer 60 also includes a memory 63. Memory 63 may include programinstructions that, when executed by processor 62, cause programmer 60 toperform various functions ascribed to programmer 60 herein. As describedin detail above, processor 62 runs a user-controlled test of a sequenceof electrode combinations to identify effective electrode combinationsfor alleviating symptom areas. Memory 63 may include any volatile,non-volatile, magnetic, optical, or electrical media, such as a randomaccess memory (RAM), read-only memory (ROM), non-volatile RAM (NVRAM),electrically-erasable programmable ROM (EEPROM), flash memory, or anyother digital media.

Processor 62 may receive a pre-defined set of electrode combinations totest from a clinician and store the pre-defined set of electrodecombinations in electrode combination information 68. Alternatively,processor 62 may execute an electrode combination search algorithm 66stored within memory 63 to select individual electrodes or electrodecombinations to test. Processor 62 shifts between subsequent electrodecombinations in accordance with the shifting techniques describedherein.

In embodiments in which programmer 60 includes a directional controllerfor receiving input to select electrode combinations, programmer 60 mayfurther include a map 76 to select combinations of electrodes located onleads 16 as a function of the location or direction of movementindicated by manipulation of directional controller 54. Map 76 may map,for example, X-Y coordinates of controller 54 to particular combinationsof electrodes on leads 16. In this manner, the user may manipulatedirectional controller 54 to search for an electrode combination thatprovides effective stimulation to patient 34. Alternatively, controller54 may indicate a progression between successive electrode combinationsin an array without regard to position, and without the need to map X-Ycoordinates to particular electrode combinations.

Processor 62 may collect information relating to tested electrodecombinations, and store the information in memory 63 for later retrievaland review by the user to facilitate identification of desirableelectrode combinations. Neurostimulation therapy programs 70 created bythe user may be stored in memory 63, and information identifyingelectrode combinations selected by the user to be utilized for one ofprograms 70 may be stored as part of the program within memory 63.Memory 63 may include any volatile, non-volatile, fixed, removable,magnetic, optical, or electrical media, such as a RAM, ROM, CD-ROM, harddisk, removable magnetic disk, memory cards or sticks, NVRAM, EEPROM,flash memory, and the like.

Processor 62 controls neurostimulator 14 to test selected electrodecombinations by controlling neurostimulator 14 to deliverneurostimulation therapy to patient 12 via the selected electrodecombinations. In particular, processor 62 transmits programming signalsto neurostimulator 14 via a telemetry circuit 72. As a sequence ofelectrode combinations proceeds, the programming signals may betransmitted at a rate consistent with the control input provided by auser. In this manner, the user may quickly observe the effects of eachincrement in the shift between electrode combinations.

Additionally, after completion of electrode testing, processor 62 maytransmit one or more of neurostimulation therapy programs 70 created bythe clinician to neurostimulator 14 via telemetry circuit 72, or toanother programmer used by the patient to control delivery ofneurostimulation therapy via input/output circuitry 74. I/O circuitry 74may include transceivers for wireless communication, appropriate portsfor wired communication or communication via removable electrical media,or appropriate drives for communication via removable magnetic oroptical media. In other embodiments, processor 62 may transmit one ormore of neurostimulation therapy programs 70 created by the clinician toneurostimulator 14 during the electrode testing process.

FIG. 7 is a block diagram illustrating an example configuration ofneurostimulator 14. Neurostimulator 14 may deliver neurostimulationtherapy via electrodes 80A-D of lead 16A (FIG. 1) and electrodes 80E-Hof lead 16B (collectively “electrodes 80”). Electrodes 80 may be, forexample, ring electrodes. In the example illustrated in FIG. 7, each ofleads 16 includes four electrodes 80 which are implanted such that theyare substantially parallel to each other and spinal cord 18 (FIG. 1), onsubstantially opposite sides of spinal cord 18, at approximately thesame height relative to spinal cord 18, and oriented such that thedistal ends of leads 16 are higher relative to the spinal cord than theproximal ends of leads 16. Such a configuration is commonly used toprovide SCS therapy. The configuration, type, and number of electrodes80 illustrated in FIG. 7 are merely exemplary. For example,neurostimulator 14 may include any number of leads that each has anynumber of electrodes.

Neurostimulator 14 includes pulse generator 83, processor 84, telemetrycircuit 86, memory 88, and neurostimulation therapy programs 89A-89N(“programs 89”) stored in memory 88. Electrodes 80 are electricallycoupled to a switch device 82 via leads 16. Switch device 82 may be aswitch array, switch matrix, multiplexer, or any other type of switchingdevice suitable to selectively couple stimulation energy to selectedelectrodes. Processor 84 controls a pulse generator 83 to generatestimulation pulses, and controls switch device 82 to couple thestimulation energy to selected electrodes. Pulse generator 83 is coupledto electrodes 80 via switch device 82. Pulse generator 83 may be coupledto a power source, such as a rechargeable or non-rechargeable battery.

Processor 84 controls pulse generator 83 to deliver stimulation energywith parameters specified by one or more of programs 89, such asamplitude, pulse width, and pulse rate. In addition, processor 84controls switch device 82 to select different electrode combinations fordelivery of stimulation energy from pulse generator 83. Processor 84 mayinclude a microprocessor, a controller, a digital signal processor(DSP), an application specific integrated circuit (ASIC), afield-programmable gate array (FPGA), or equivalent discrete orintegrated logic circuitry.

Pulse generator 83 may be a single- or multi-channel pulse generator. Inparticular, pulse generator 83 may be capable of delivering a singlestimulation pulse or multiple stimulation pulses at a given time via asingle electrode combination or multiple stimulation pulses at a giventime via multiple electrode combinations. In some embodiments, however,pulse generator 83 and switch device 82 may be configured to delivermultiple channels on a time-interleaved basis. In this case, switchdevice 82 serves to time division multiplex the output of pulsegenerator 83 across different electrode combinations at different timesto deliver multiple programs or channels of stimulation energy to thepatient.

For testing of electrode combinations, processor 84 controlsneurostimulator 14 to smoothly shift stimulation energy betweendifferent electrode combinations. Neurostimulator 14 shifts betweenelectrode combinations of different programs by incrementally adjustingthe amplitudes of the electrode combinations to smoothly shift from oneelectrode combination to another. For example, processor 84 may beresponsive to changes in programs 89, as received from a programmer, tocontrol switch device 82 and pulse generator 83 to deliver stimulationpulses or groups of pulses to different electrode combinations insuccessive time slots.

In one time slot, for example, processor 84 controls pulse generator 83to deliver one or more stimulation pulses with a given amplitude, andcontrols switch device 82 to deliver the pulses via a first electrodecombination. In the next time slot, processor 84 controls pulsegenerator 83 to deliver one or more stimulation pulses with a differentamplitude, and controls switch device 82 to deliver the pulses via asecond electrode combination. Hence, successive time slots containstimulation pulses that are delivered at different amplitudes and viadifferent electrode combinations to simulate a smooth shift ofstimulation energy between the electrode combinations.

Programmer 60, such as any of programmers 11, 20, 30, 40 and 50 of FIGS.1-5, controls neurostimulator 14 to test electrode combinations so thata user may identify desirable combinations. Programmer 60 controlsneurostimulator 14 to test a number of electrode combinations and allowsthe user to select particular electrode combinations that provideefficacious results. Telemetry circuit 86 allows processor 84 tocommunicate with programmer 60 during the electrode testing process. Inparticular, processor 84 receives, as updates to programs 89, values forstimulation parameters such as amplitude and electrode combination, fromthe programmer via telemetry circuit 86, and delivers one or morestimulation pulses according to the received stimulation parameters.

As described above, processor 84 receives stimulation parameters for atleast two electrode combination interleaved as to provide patient 12with the perception of continual stimulation. Processor 84 continues toreceive stimulation patterns from programmer 60 and deliver stimulationpulses to patient 12 until the entire series of electrode combinationsare tested or the user has interacted with the programmer to stop thetesting. Processor 84 may also receive updated program informationcreated by the user after completion of the electrode testing and updateone or more of programs 89 such that therapy delivery circuit 82delivers stimulation pulses according to the updated program.

In addition to program 89, memory 88 may include program instructionsthat, when executed by processor 84, cause neurostimulator 14 to performvarious functions ascribed to the neurostimulator herein. Memory 88 mayinclude any volatile, non-volatile, magnetic, optical, or electricalmedia, such as a random access memory (RAM), read-only memory (ROM),non-volatile RAM (NVRAM), electrically-erasable programmable ROM(EEPROM), flash memory, or any other digital media.

FIG. 8 is a flow diagram illustrating exemplary operation of aprogrammer, such as programmer 11 of FIG. 1, programming neurostimulator14 in accordance with the techniques of the invention. Programmer 11receives configuration information from a user (90). The configurationinformation may relate to electrode settings and pulse settings. Theelectrode setting information received by programmer 11 may include thenumber of leads, a type of lead for each of the leads, a leadorientation, a lead positioning, a subset of electrodes over which theshifting feature should operate, a lead pattern to use, and a startinglocation (e.g., a first electrode combination). For example, the leadinformation may indicate that the lead is a 1×8 lead, the startinglocation is the top electrode, and the lead pattern is the best singlecathode combination. The pulse setting information may include pulsewidth, rate and rise parameters.

Programmer 11 may then initiate a calibration sequence with the user toidentify perception and target amplitudes (92). During the calibrationsequence, programmer 11 increases the amplitude of the stimulation on anelectrode combination and marks the amplitude level at which the userfirst perceives stimulation, i.e., the perception amplitude orperception amplitude as described herein, and the amplitude level atwhich the stimulation is strong but still comfortable (SBC), i.e., thetarget amplitude. Programmer 11 may calibrate perception and targetamplitudes for any number of electrode combinations. Programmer 11stores the perception and target amplitude values for later use duringthe shifting process.

Programmer 11 begins testing different electrode combinations inaccordance with user input (94). To begin, the user may select theportions of the lead array over which the shifting feature shouldoperate. For example, the selected portions may include a single lead, asubset of a single lead, across multiple leads, or a particular subsetof electrodes in an array. The user also selects an electrodecombination, i.e., electrode pattern, to shift about the selectedportion of the lead. The combination could include, for example, asingle bipole, a guarded cathode combination, a single cathode (insystems that support unipolar stimulation), or any other combination ofone or more electrodes on a lead or multiple leads. Finally, the userselects a starting point, i.e., the location of the first electrodecombination to be evaluated. The first electrode combination could be atthe end of one lead or at a boundary of a selected subset of an array.

To begin the shifting process, programmer 11 programs neurostimulator 14to apply stimulation pulses to patient 12 via the first electrodecombination identified by the user, i.e., the starting location.Programmer 11 ramps the stimulation amplitude of the first electrodecombination upward in incremental steps until it reaches the targetamplitude identified during calibration. If no calibration sequence wasperformed, the programmer ramps up the stimulation amplitude of thefirst electrode combination in incremental steps until the useridentifies a strong but still comfortable (SBC) level, which serves asthe target amplitude level.

Programmer 11 begins to smoothly transition to a second electrodecombination upon reaching the target amplitude of the first electrodecombination. As discussed above, the incremental steps in the transitionmay be directly or indirectly controlled by a user. Programmer 11 shiftsto the second electrode combination in a manner that simulates a smoothshift of stimulation energy for purposes of patient perception. Althoughthe stimulation energy is not delivered continuously and simultaneouslyby the electrode combinations, the rate at which time slots containingpulses are interleaved causes the patient to perceive a smooth shiftfrom the first electrode combination to the next. In particular, thepatient perceives that the physiological effects of the pulses from thedifferent electrode combinations are occurring on a substantiallycontinuous or overlapping basis.

Programmer 11 turns on the second electrode combination at a low levelof amplitude and incrementally increases the amplitude of pulsesdelivered via the second electrode combination while concurrentlydecreasing the amplitude of pulses delivered via the first electrodecombination in alternating time slots. The first electrode combinationexists in program 1 (P1), while the second electrode combination existsin program (P2). Each incremental step may be contingent on receivinginput from the user. In other embodiments, programmer 11 automaticallyincrements the amplitude of stimulation energy delivered via theelectrode combination over time unless the user provides inputindicating discomfort.

During the electrode combination testing, programmer 11 receives inputfrom the user identifying particularly efficacious electrodecombinations. After the electrode combination testing is complete,programmer 11 allows the user to return to the marked settings andoptimize those settings (96). The user may, for example, be able toreturn to the marked settings and switch between them for purposes ofcomparison.

Programmer 11 determines whether the program covers all symptom areasexperienced by patient 12 (98). If the electrode combination identifieddoes not cover all symptom areas, programmer 11 runs the user throughanother electrode combination testing session to determine anefficacious electrode combination for the other symptom areas. Patient12 may, for example, be experiencing leg pain as well as lower backpain. The electrode combination testing may be performed for each of thesymptom areas to identify electrode combinations that are particularlyaffective for each area of pain. In some embodiments, programmer 11 mayrepeat testing the same electrode combinations. In other embodiments,programmer 11 may modify the electrode combinations based upon markedcombinations of some other pre-defined algorithm.

When programmer 11 identifies electrode combinations for all of thesymptom areas, the programmer assembles a program set that includesprograms for each symptom area (99). As described above, the programs ofthe program set each contain a number of stimulation parameters,including the stimulation amplitudes and electrode combinationsidentified during the testing. Programmer 11 programs neurostimulator 14with the created program set via a telemetry unit.

As discussed above, stimulation energy is shifted from one electrodecombination to the next electrode combination using a series ofincremental steps. In the first step, stimulation is occurring only onthe first electrode combination using a single channel (program P1) ofoutput from the implantable device. In the first incremental step ofshifting, the system turns on the second combination at a low level ofamplitude and using a second channel of stimulation (program P2). Thesedifferent programs P1, P2 of stimulation are delivered with their pulsesor groups interleaved in alternating time slots, using capabilitiesavailable in current neurostimulators, such that their physiologicaleffects occur simultaneously and overlap in the perception of patient12.

In a simple example, the amplitude at which the second program P2 ofstimulation is introduced could be zero. In a more complex design, thesecond program P2 could be introduced at an amplitude equal to the lowerthreshold, or amplitude, at which the patient first perceivesstimulation. This lower amplitude could be measured directly from a fullcalibration, interpolated from a partial calibration using only a subsetof possible electrodes, or estimated as a percentage, e.g., 40%, of thecurrent SBC level of stimulation.

In subsequent steps of the shifting process, the amplitude of the firstelectrode combination (associated with program P1) is decreased whilethe amplitude on the second electrode combination (associated withprogram P2) is increased. Step sizes, which may be linear and fixed orvary according to exponential, logarithmic or algorithmic change, may bedependent on characteristics of the lead locations and the electrodespacing within a lead. For example, larger spacing may make a slowerrate of change more appropriate. The number of steps to complete a fullshift may vary, although ten steps are provided for purposes of example.

The shift is complete when the amplitude of the second combination (P2)reaches the SBC amplitude at which the first combination began. At thispoint, the amplitude (P1) of the first combination has reached eitherzero or the lower amplitude, and can be shut off with no loss of patientsensation. At this point, the shifting process continues from the secondcombination (now using P2 with a strong-but-comfortable amplitude) to athird combination adjacent to the second, reusing the program P1, whichbecomes available when the first combination is turned off.

In some embodiments, at any point during the shifting process, the usercan increase or decrease the intensity of stimulation to maintaincomfortable sensations that are strong enough to evaluate the efficacyof the combinations. When an increase or decrease in intensity isinitiated by the user, the programmer adjusts both of the currentlyactive programs as well as the target, or SBC, amplitude.

The shifting of stimulation energy between successive electrodecombinations may step between adjacent electrode combinations ornon-adjacent electrode combinations. In addition, the shift process maystep between similar electrode patterns or different electrode patterns.For example, the first and second electrode combinations may share acommon pattern of electrodes, but represent a shifting upward ordownward on a lead set.

As an illustration, for a 2×8 electrode arrangement in which two leadseach carry eight electrodes, and the electrodes on one lead aredesignated 0 through 7 from top to bottom, and the electrodes on theother lead are designated 8-15 from top to bottom, a first combinationcould be the following: 0+ 1− 2+, where the number designates theelectrode position and the plus or minus designates the polarity of theelectrode.

In this example, a shift to a second electrode combination could yieldthe same pattern but simply move down one electrode position, e.g., 1+2− 3+. In other embodiments, the first and second electrode combinationsmay have different patterns, e.g., combination 1=0+ 1− and combination2=0+ 1− 2+, and then combination 3=1+ 2−.

FIG. 9 is a flow diagram illustrating exemplary operation of aprogrammer, such as programmer 11 of FIG. 1, in testing electrodecombinations. Electrode combination testing is performed under usercontrol, with each incremental step contingent on receiving input fromthe user. Initially, programmer 11 controls neurostimulator 14 to selecta first electrode combination and delivers a pulse or group of pulses ina time slot via the first electrode combination (100). The user mayspecify which electrode combination programmer 11 should test duringinitial configuration.

Programmer 11 next determines whether it has received input from theuser (102) for an increase in amplitude of the stimulation energydelivered via the first electrode combination. The user may, forexample, be a physician, and the physician may actuate a button when apatient indicates that the pulse amplitude is comfortable. In anotherembodiment, patient 12 may be the user, thereby eliminating the need forcommunication between the physician and patient 12. In the example ofFIG. 9, programmer 11 does not increment the stimulation amplitude anyfurther until input is received from the user.

Upon receiving input from the user to indicate that the stimulationamplitudes are comfortable, programmer 11 determines whether thestimulation amplitude of the first electrode combination has reached thetarget amplitude (104). When the stimulation amplitude of the firstelectrode combination is below the target amplitude, programmer 11increases the amplitude of the stimulation of the first electrodecombination by a step (106), and waits for user input (102).

When the stimulation amplitude of the first electrode combinationreaches the target amplitude, programmer 11 turns on a subsequentelectrode combination (108). As described above, the subsequentelectrode combination may be the next electrode combination in apre-defined sequence of electrode combinations. Alternatively, the nextelectrode combination may be selected in response to input from theuser, such as time-domain or sequence-domain input identifying a time orposition within a sequence, or planar input identifying a direction orlocation.

Programmer 11 decreases the amplitude of the first electrode combination(110) and increases the amplitude of the subsequent electrodecombination by a single step (112). The step may be a fixed linear stepor an exponential or other algorithmic change such as a logarithm. Forexample, the first step may be 10% of the target amplitude. As describedabove, programmer 11 interleaves time slots containing one or morestimulation pulses provided to the first electrode combination and thesubsequent electrode combination. The time slots are interleaved at afrequency that provides the patient with the feeling of a smooth shiftbetween the electrode combinations.

Programmer 11 waits to receive user input indicating that thestimulation amplitude remains comfortable after the step (114).Programmer 11 concurrently monitors for mark input from the user (116).Mark input may be received when a user determines that a particularsetting is efficacious. Upon receiving mark input, programmer 11 storescurrent parameter values (118). For example, programmer 11 may store theamplitude values for each of the electrode combinations, i.e., the firstelectrode combination and the subsequent electrode combination.Additionally, programmer 11 may store the current target amplitude.Programmer 11 may return to the marked settings at a later time to allowthe user to optimize the parameters.

Programmer 11 also monitors for amplitude adjustment input from the user(120). Amplitude adjustment information may be received at any timeduring the shifting process. The user can increase or decrease theoverall intensity of stimulation to maintain comfortable sensations thatare strong enough to evaluate the efficacy of the combinations.Programmer 11 adjusts the overall intensity of the stimulation inresponse to receiving input from the user (122). For example, programmer11 may adjust one or both of the stimulation amplitudes applied to thefirst and subsequent electrode combinations as well as the targetamplitude toward which programmer 11 is working.

Programmer 11 determines whether the amplitude of the subsequentelectrode combination is at the target amplitude (124). If the amplitudeof the subsequent electrode combination has not reached the targetamplitude, programmer 11 adjusts the amplitudes of the previouselectrode combination and the subsequent electrode combination.Specifically, programmer 11 decreases the amplitude of the previouselectrode combination one more step and increases the amplitude of thesubsequent electrode combination one more step. In some embodiments, thestep size may be different between decreasing amplitude or increasingamplitude. In other words, amplitude may be ramped upwards faster orslower than amplitude ramped downwards.

If the amplitude of the subsequent electrode combination has reached thetarget amplitude, programmer 11 turns off the first electrodecombination (126) and turns on the next subsequent electrode combinationin the sequence (128). Programmer 11 begins to incrementally shift thetwo electrode combinations in the same manner to smoothly transitionbetween them. Programmer 11 tests all the electrode combinations of thesequence, transitioning between each one in accordance with theinvention. Again, the sequence may be a predefined sequence of adjacentor nonadjacent electrode combinations, or a sequence that is dynamicallygenerated in response to input from the user.

FIG. 10 is a flow diagram illustrating exemplary operation of aprogrammer, such as programmer 11 of FIG. 1, testing electrodecombinations in a predetermined sequence. The electrode combinationtesting is performed under user control, with the incrementaladjustments occurring automatically until programmer 11 receives inputfrom the user. Initially, programmer 11 controls neurostimulator 14 toturn on a first electrode combination and delivers one or moreelectrical pulses via the first electrode combination (130). Programmer11 determines whether it has received input from the user indicatingthat the amplitude of the stimulation is uncomfortable (132). The usermay, for example, be a physician, and the physician may actuate a buttonwhen a patient indicates that the stimulation is uncomfortable. Whenprogrammer 11 receives input from the user indicating the amplitude ofthe stimulation is uncomfortable, programmer 11 stops the automatedamplitude adjustments (134).

When programmer 11 does not receive input from the user, programmer 11determines whether the stimulation amplitude of the first electrodecombination has reached the target amplitude or SBC level (136). Whenthe stimulation amplitude of the first electrode combination is belowthe target amplitude, programmer 11 increases the amplitude of thestimulation of the first electrode combination by a step (138).Programmer 11 increases the amplitude by downloading a program update tothe neurostimulator via telemetry. The increases in amplitude may occurperiodically at a rate of one every few seconds, so that there issufficient spacing between the amplitude adjustments for the patient todistinguish different stimulation levels and have time to react in theevent stimulation quickly becomes uncomfortable. In other embodiments,the rate may be slower or faster.

When the stimulation amplitude of the first electrode combinationreaches the target amplitude, programmer 11 turns on a subsequentelectrode combination (142). As described above, the subsequentelectrode combination may be the next electrode combination in apre-defined sequence of electrode combinations. In some embodiments, thesubsequent electrode combination may be an adjacent electrodecombination. Programmer 11 decreases the amplitude of the firstelectrode combination (144) and increases the amplitude of thesubsequent electrode combination by a single step (146). Programmer 11interleaves the time slots during which stimulation pulses are providedto the first electrode combination and the subsequent electrodecombination at a frequency that provides the patient with the feeling ofa smooth transition between the electrode combinations.

Programmer 11 determines whether it has received input from the userindicating that the amplitude of the stimulation is uncomfortable afterthe step (148). When programmer 11 receives input from the userindicating the amplitude of the stimulation is uncomfortable, programmer11 stops the automated amplitude adjustments (134).

When programmer 11 does not receive input from the user, programmer 11determines whether the amplitude of the subsequent electrode combinationis at the SBC level (150). If the amplitude of the subsequent electrodecombination has not reached the SBC level, programmer 11 adjusts theamplitudes of the previous electrode combination and the subsequentelectrode combination. Specifically, programmer 11 decreases theamplitude of the previous electrode combination one more step andincreases the amplitude of the subsequent electrode combination one morestep.

If the amplitude of the subsequent electrode combination has reached thetarget amplitude, programmer 11 turns off the first electrodecombination (152) and turns on the next subsequent electrode combinationin the sequence (154). Programmer 11 begins to incrementally shift thetwo electrode combinations in the same manner to smoothly shift betweenthem. Programmer 11 tests the electrode combinations of the sequence,shifting between each one in accordance with the invention. Programmer11 may also concurrently monitor for mark input from the user foramplitude adjustment input from the user as described in detail in FIG.9.

FIG. 11 is a flow diagram illustrating exemplary operation of programmerthat receives input from a user, such as programmer 50 of FIG. 5,shifting between electrode combinations in accordance with thetechniques described herein. Initially, programmer 50 receives inputfrom a user via controller 54 (160). For example, controller 54 may be ajoystick, and the user may manipulate the joystick in a particulardirection.

Programmer 50 maps the manipulation of controller 54 to a particularelectrode combination (162). Programmer 50 may, for instance, access amap that maps X-Y coordinates of the directional controller tocombinations of electrodes on leads 16. Alternatively, programmer 50 mayuse input from controller 54 to select successive electrodecombinations, e.g., by array pointers, without regard to directional orlocation information. Programmer 50 controls neurostimulator 14 to turnon the electrode combination identified by the mapping (164). Programmer50 decreases the amplitude of the first electrode combination (166) andincreases the amplitude of the subsequent electrode combination by asingle step (168). As described above, programmer 50 interleaves thetime slots during which stimulation pulses are provided to the firstelectrode combination and the subsequent electrode combination (170).

Programmer 50 monitors for either mark input or amplitude adjustmentinput from the user (172). As described in detail above, mark input maybe received when the user determines that a particular setting isefficacious. Upon receiving mark input, programmer 50 stores currentparameter values, e.g., the amplitude values for one or both of theelectrode combinations as well as the current target amplitude.

Amplitude adjustment input may be received at any time during theshifting process. Programmer 50 adjusts the overall intensity of thestimulation in response to receiving input from the user by adjustingone or both of the stimulation amplitudes of the first and subsequentelectrode combinations as well as the target amplitude toward whichprogrammer 50 is working. Hence, in this example, the controllersupports selection of the electrode combination, while separateamplitude controls may be provided to support incremental adjustment ofamplitude from one electrode combination to another.

Programmer 50 determines whether the stimulation amplitude of the mappedelectrode combination has reached the target amplitude (174). When thestimulation amplitude of the mapped electrode combination is below thetarget amplitude, programmer 50 decreases the amplitude of the firstelectrode combination (166) and increases the amplitude of thesubsequent electrode combination by another step (168). Each incrementaladjustment of stimulation amplitude may occur automatically, or becontingent on receiving input from the user.

If the amplitude of the mapped electrode combination has reached thetarget amplitude, programmer 50 turns off the first electrodecombination (176). In this manner, the user may manipulate controller 54to search for an electrode combination that provides effectivestimulation to patient 12.

FIG. 12 is a flow diagram illustrating exemplary operation of aneurostimulator, such as neurostimulator 14 of FIG. 1, shifting betweenelectrode combinations while switching neurostimulation therapyprograms. Initially, neurostimulator 14 receives input identifying theneed to switch between programs (180). Neurostimulator 14 may includeone or more detectors that detect variables such as movement of apatient, heart rate of a patient or the like, and identify the need toswitch between programs based on a change in one of the measuredvariables. For example, neurostimulator 14 may include an accelerometer,and may detect the need to switch programs upon the accelerometerdetecting the patient moving from a lying down position to a standingposition. Alternatively, neurostimulator 14 may receive input from apatient programmer indicating that the patient would like to changeprograms, or that the patient will be moving from a lying down positionto a standing up position, and correlate that input with the need toswitch therapy programs.

Neurostimulator 14 turns on the electrode combination associated withthe new program (182). Neurostimulator 14 decreases the amplitude of theelectrode combination associated with the previous program (e.g., thelying down program) (184) and increases the amplitude of the electrodecombination associated with the subsequent program (e.g., the standingup program) by an incremental step (186). As described above, programmer50 interleaves the time slots during which stimulation pulses areprovided to electrode combinations (187).

Neurostimulator 14 determines whether the stimulation amplitude of theelectrode combination associated with the new program has reached thetarget amplitude (188). When the stimulation amplitude of the electrodecombination associated with the new program is below the targetamplitude, neurostimulator 14 decreases the amplitude of the electrodecombination associated with the previous program (184) and increases theamplitude of the electrode combination associated with the new programby another incremental step (186). If the amplitude of the electrodecombination associated with the new program has reached the targetamplitude, neurostimulator 14 turns off the electrode combinationassociated with the previous program (189).

FIG. 13 is an exemplary timing diagram 190 illustrating the shiftingprocess between subsequent electrode combinations. Programmer 11 will beused as an example. In particular, timing diagram 190 illustrates thetesting of three subsequent electrode combinations, electrodecombination 192A, electrode combination 192B, and electrode combination192C. Timing diagram 190 is described in terms of electrode combinationtesting, but similar timing mechanisms are utilized to shift betweenelectrode combinations associated with different neurostimulationprograms. In FIG. 13, for purposes of illustration, electrodecombinations 192A, 192B, and 192C are shown as simple +/− combinationsof electrodes on a lead 16. For purposes of illustration, the exemplaryprogression between electrode combinations 192A, 192B, 192C is asuccession of two downward shifts of the +/− combination on lead 16.

Initially, the amplitude of the one or more stimulation pulses deliveredby electrode combination 192A is increased until it reaches a targetamplitude (labeled TA1 in FIG. 13). The amplitude of the stimulationpulses delivered by electrode combination 192A is increasedincrementally, and the incremental increases proceed under user control.As described above, each incremental step may be contingent on inputfrom the user or programmer 11 may proceed through the incremental stepsautomatically unless it receives input from the user to stop.

Upon reaching the TA1 threshold, programmer 11 controls theneurostimulator to turn on electrode combination 192B and graduallyshift between electrode combinations 192A and 192B. In timing diagram190 illustrated in FIG. 12, the initial amplitude of electrodecombination 192B is set at a perception amplitude (labeled PA2 in FIG.13). PA2 may, for example, be the lowest amplitude at which the patientmay detect stimulation on that particular electrode combination. Theperception amplitude may, for example, either be detected during aprevious calibration session or may be estimated based on calibration ofanother electrode combination or based on the target amplitude. In someembodiments in which a perception amplitude is not available, theinitial amplitude of the subsequent electrode combination 192B may bezero.

Programmer 11 incrementally adjusts stimulation amplitudes of electrodecombinations 192A and 192B and interleaves the output pulses inalternating time slots such that the patient feels continuousstimulation. Programmer 11 incrementally decreases the amplitude ofelectrode combination 192A while concurrently incrementally increasingthe amplitude of electrode combination 192B toward TA1 step by step. Intiming diagram 190 of FIG. 13, the target amplitude for electrodecombination 192B is the same as 192A. The target amplitude for each ofelectrode combinations may be different, however, and may be tested forduring calibration.

During the amplitude increase on electrode combination 192B, programmer11 receives input from the user indicating that the stimulation hasbecome uncomfortable, and the programmer decreases the overall intensityof the stimulation at arrow 194 in response to the input. As illustratedin timing diagram 190, programmer 11 decreases the target amplitude andthe amplitude of the stimulation pulses applied to electrode combination192B. In some embodiments, programmer 11 may additionally decrease theamplitude of the stimulation pulses applied to the electrode combinationwhose amplitude is incrementally decreasing (i.e., electrode combination192A in this example).

Programmer 11 continues to incrementally increase the amplitude of thestimulation pulses delivered to electrode combination 192B toward thereduced target amplitude (labeled TA2 in FIG. 13). Upon reaching TA2,programmer 11 controls the neurostimulator to shut off electrodecombination 192A and turn on the next subsequent electrode combination,i.e., electrode combination 192C. Programmer 11 incrementally adjustsstimulation amplitudes of electrode combinations 192B and 192C in themanner described above. In other embodiments, a specified period of timemay separate the end of combination 192A and the beginning ofcombination 192C. In this manner, 192B would operate alone during thetransition period. In some embodiments, electrode combination 192A maybe shut off prior to electrode combination 192B reaching TA2.

During the amplitude increase on electrode combination 192C, programmer11 receives input from the user indicating that the stimulation hasbecome too weak, and the programmer increases the overall intensity ofthe stimulation at arrow 196 in response to the input. As illustrated intiming diagram 190, programmer 11 increases the target amplitude back tothe original target amplitude (TA1) and also increases the amplitude ofthe stimulation pulses applied to electrode combination 192C. Programmer11 continues to incrementally increase the amplitude of the stimulationpulse delivered to electrode combination 192C toward the original targetamplitude.

FIG. 14 depicts another exemplary timing diagram 200 illustrating theinterleaving of time slots containing one or more stimulation pulsesdelivered by different electrode combinations in order to provide asmooth shift from a first electrode combination to a second electrodecombination. As described briefly above, programmer 11 interleaves thetime slots at a high enough frequency that the patient feels a smoothshift from the first electrode combination to the next. Thephysiological effects of the stimulation pulses in the alternating timeslots appear to occur almost simultaneously and overlap in the patient'sperception.

In the example illustrated in timing diagram 200, the entire shiftprocess proceeds over a ten second interval with the stimulationamplitudes being interleaved every one-quarter of a second. Programmer11 controls neurostimulator 14 to deliver a first stimulation energy viathe first electrode combination for 250 milliseconds, then deliver astimulation energy via the second electrode combination for 250milliseconds, and then deliver stimulation energy via the firstelectrode combination for 250 milliseconds and so forth. Hence, theelectrode combinations are assigned respective time slots andinterleaved at a relatively high frequency to simulate a smooth shiftingof energy between the electrode combinations. Within each time slot,multiple pulses of stimulation energy may be applied, according to thepulse width and rate of the stimulation energy. In some embodiments,stimulation energy might not be delivered throughout the entire timeslot assigned to a respective electrode combination. For example, thestimulation energy may be delivered via the first electrode combinationfor only 200 milliseconds of the 250 millisecond time slot. Theremaining 50 milliseconds may be a pause where no stimulation energy isdelivered by any electrode combination. Consequently, in someembodiments, stimulation may not be delivered during the entire pulsetime slot.

Every incremental step in amplitude is therefore applied to patient 12for two seconds. In particular, programmer 11 controls neurostimulator14 to deliver stimulation in eight consecutive time slots during each ofthe amplitude adjustments, e.g., four time slots of pulses for the firstelectrode combination at an associated stimulation amplitude and fourtime slots of pulses for the second electrode combination at anassociated stimulation amplitude. The time slots for the first andsecond electrode combinations are interleaved such that they alternateevery other time slot. Thus, neurostimulator 14 provides stimulationpulses in a first time slot via a first electrode combination andstimulation pulses in a second slot via the second electrodecombination. In some embodiments, neurostimulator 14 may deliver morepulses for each electrode combination before adjusting amplitude. Forexample, in each time slot, 100 pulses or more may be delivered for eachcombination at an associated amplitude before an amplitude adjustment ofeach electrode combination is made. Again, the number of pulses providedin a given time slot will depend on the length of the time slot and thepulse width and pulse rate, but may range from one pulse per time slot,to several pulses per time slot, to a few hundred pulses per time slot.In one example, a time slot is approximately 250 ms in length andcarries approximately 250 pulses. In another example, a time slot isapproximately 250 ms in length, and carries 200 pulses as well as a 50ms pause before the next time slot.

The shift between electrodes may occur at different frequencies overdifferent shift periods, and is thus not limited to a ten second shiftperiod with pulses being interleaved every 250 milliseconds. Forexample, programmer 11 may control neurostimulator 14 to deliver only asingle pulse or multiple pulses at each amplitude at each amplitude.

Timing diagram 200 also illustrates the incremental adjustments made tothe amplitudes of the stimulation pulses associated with each of theelectrode combinations. In the example illustrated in FIG. 14, theamplitudes of the first and second electrode combinations are increasedand decreased, respectively, by 20% per step. Programmer 11 may,however, be configured to adjust the amplitudes by any percentage perstep.

As shown in timing diagram 200, when the amplitude of the firstelectrode combination reaches the target amplitude, programmer 11 turnson the second electrode configuration at the perception amplitude level.The perception amplitude level in this example is 20% of the targetamplitude. Programmer 11 decreases the amplitude of the first electrodecombination and increases the amplitude of the second electrodecombination as described in detail above.

For simplicity, in some instances, delivery of neurostimulation energyvia different electrode combinations may be accomplished by interleavingon a pulse-by-pulse basis. However, it is not necessary that individualpulses be delivered in each time slot. Rather, a given electrodecombination may deliver multiple pulses in an assigned time slot for afirst electrode combination, followed by delivery of multiple pulses inthe next assigned time slot by a different electrode combination.Therefore, although delivery of stimulation energy occurs on atime-interleaved basis, as described herein, each time slot may includea single pulse or multiple pulses from a given electrode combination.

FIG. 15 is a screen illustration showing an exemplary user interface 210for configuring a programmer for electrode combination testing.Programmer 11 will be used as an exemplary programmer. User interface210 may be presented on a touch screen display or LCD. User interface210 includes an electrode setting section 212 and a pulse settingsection 214. The user of programmer 11 may interact with electrodesetting section 212 to identify the number of leads associated withneurostimulator 14 as well as which electrode to start and end with oneach lead. Additionally, the user may interact with electrode settingsection 212 to select the portions of each of the leads over which theshifting feature should operate. Electrode setting section 212 mayinclude additional setting options (not shown) for the user.

Pulse setting section 214 includes a number of pull-down menus withwhich the user may interact to specify the electrode pattern, the pulsewidth, the rate, and the rise. For example, the user may interact withpulse setting section to indicate whether the electrode pattern is asingle bipole, a guarded cathode combination, a single cathode, or anyother combination.

FIG. 16 is a screen illustration showing an exemplary user interface 220for interacting with a user to calibrate detection and targetamplitudes. In the example illustrated in FIG. 16, user interface 220includes calibrated detection and target amplitudes for two electrodecombinations. To calibrate detection and target amplitude for anelectrode combination, the user identifies which of the electrodecombinations to calibrate. The user may, for example, use a peripheralpointing device, such as a stylus, to select one of the electrodecombinations. In the example illustrated in FIG. 16, the user iscalibrating electrode combination 2.

After selecting the particular electrode combination to calibrate, theamplitude of the one or more stimulation pulses delivered by theselected electrode combination is incrementally increased. The useridentifies the amplitude at which he/she perceives the stimulation andthe amplitude that provides SBC level stimulation, i.e., the targetamplitude. The user may interact with user interface 220 to calibrateany number of the electrode combinations that will be tested. Althoughthe calibration user interface depicted in FIG. 16 is a single userinterface for calibrating all the electrode combinations, the user maycalibrate the electrode combination using a series of differentcalibration user interfaces, one for each electrode combination.

FIG. 17 is a screen illustration showing an exemplary user interface 230for interacting with a user to control the shift between a first andsecond electrode combination. User interface 230 may be a touch screendisplay, and the user may interact with user interface 230 via thedisplay. The user may also interact with user interface 230 usingperipheral pointing devices, such as a stylus or mouse.

User interface 230 includes shifting controls 232 for controlling theshift between the first and second electrode combinations. Shiftingcontrols 232 include a forward control 234, a back control 236, a jumpforward control 238 and a jump back control 240. In some embodiments, apause control also may be provided. The user may interact with shiftingcontrols 232 between each incremental step in the shift. In this manner,each step in the shift may be contingent on input from the user.Alternatively, programmer 11 may proceed through the incremental stepsautomatically until the user interacts with shifting controls 232. Jumpback control 240 may go directly to the previous marked point, whilejump forward control 238 may go directly to the next marked point.

User interface 230 further includes a mark button 242. Mark button 242allows the user to indicate settings that provide efficacious results.Upon actuation of mark button 242, programmer 11 stores the settings,e.g., the amplitudes and electrode combinations, and the user may returnto those setting to fine tune them. User interface 230 also presents theuser with a graph 244 showing the steps of the shift.

FIG. 18 is a screen illustration showing a series of exemplary userinterfaces for configuring a programmer, such as programmer 11, forelectrode combination testing. Initially, a user interacts with userinterface 250 to select a lead type, lead orientation, and a leadpositioning. The user selects the electrode configuration information onuser interface 250 and moves on to the next user interface 252. Userinterface 252 allows the user to select particular electrodes of theleads to use in testing, the pattern to use, and the starting locationof the electrode testing.

The user may also select details button 254, which provides the userwith another user interface (not shown in FIG. 18) for specifyingamplitude stepping information, such as pulse width, rate, and amplitudeincrement information. For example, the user may input amplitudeincrement information such as step size and step rate.

FIG. 19-22 are schematic diagrams illustrating another exemplaryprogrammer 254 to search stimulation programs for controlling animplantable neurostimulator 14 to test electrode combinations.Programmer 254 may be configured as a clinician programmer and maygenerally correspond in structure and function to the programmers shownin FIGS. 2-5. In the example of FIGS. 19-22, programmer 254 comprises atouch screen display 255 that presents a pair of leads, each including aset of eight electrodes. For example, a first lead 256 includeselectrodes 0-7 and a second lead 258 includes electrodes 8-15. Theorientation of leads 256, 258 in display 255 is such that the distal endof each lead is at the top of the display. Display 255 further presentsan amplitude adjustment area 260, a pulse width adjustment area 262 anda frequency adjustment area 264. A user may select or enter parameterinformation within areas 260, 262, 264 to control the parameters of thestimulation energy delivered according to a particular program. Inaddition, display 255 presents device 266 in the form of up/down andside-to-side arrows. A user manipulates device 266 to move a selectedpattern of electrodes up or down along a lead or pair of leads, orside-to-side from one lead to another. The up/down or side-to-sideindication from device 266 may indicate progression from one electrodecombination to another electrode combination in an array of electrodecombinations, e.g., without regard to directional information.

In the example of FIG. 19, a bipolar combination of electrodes 2 (+) and3 (−) on lead 256 is to be shifted to a bipolar combination ofelectrodes 11 (+) and 12 (−) on lead 258. However, the shifting of pulsevoltage or current amplitude occurs on an incremental basis over aseries of alternating, time-interleaved time slots. In a first timeslot, prior to shifting, one or more pulses at a full amplitude aredelivered across electrodes 2 and 3 and, in a second time slot, one ormore pulses at no amplitude are delivered across electrodes 11 and 12.In a third slot, at the start of the shifting process, one or morepulses with a slightly reduced amplitude are delivered across electrodes2 and 3 and, in a fourth time slot, a small amplitude is deliveredacross electrodes 11 and 12. The process continues until, on successivetime slots, no amplitude is delivered across electrodes 2 and 3 and afull amplitude is delivered across electrodes 11 and 12. At this point,the incremental shifting of voltage or current amplitude has beencompleted, such that stimulation is shifted entirely from electrodes 2,3 to electrodes 11, 12. Notably, the reference to “full” amplitude abovedoes not necessarily mean the maximum amplitude capable of delivery byneurostimulator 14, but rather the entire target amplitude establishedby a user for delivery of stimulation according to a particular programacross a desired electrode combination.

The shifting of amplitude between electrodes 2, 3, as a first electrodecombination, and electrodes 11, 12, as a second electrode combination,is performed incrementally. In the example of FIG. 19, each increment ofthe shifting process is responsive to manipulation of device 266 by auser. In particular, each time the user touches the right-handside-to-side arrow of device 266, the amplitude is shifted by oneincrement to the right, i.e., from electrodes 2, 3 on lead 256 toelectrodes 11, 12 on lead 258. To execute each incremental shift inresponse to the user input, programmer 254 sends a corresponding commandto neurostimulator 14. As mentioned previously, each incremental shiftmay be a fixed amount, or vary in a linear or nonlinear manner. In someembodiments, a user may press on an arrow continuously to causeprogrammer 254 to direct neurostimulator 14 through a series ofincrements. Hence, the user may press an arrow repeatedly or hold downthe arrow to achieve a plurality of shift increments. In otherembodiments, the user may not need to continually press on an arrow toachieve a plurality of shift increments. One press of an arrow may causea shift to the new electrode combination as described until a targetamplitude of the new electrode combination is reached. Once the targetamplitude is reached, another arrow may be pressed to shift to anotherelectrode combination.

To present the progress of the incremental shifting process to the user,display 255 may identify the electrodes involved in the process, e.g.,by highlighting, blinking, or colors, or by brackets or parentheses, asshown in FIG. 19. In addition, the progress of the incremental shiftingprocess may be presented by icons that change their appearance as theshifting process progresses. Prior to shifting, the current electrodecombination is indicated and identified by polarity, e.g., plus or minuspolarity, while the electrode combination to which stimulation is to beshifted, i.e., the new electrode combination, is not identified yet. Atthe start of shifting, the current electrode combination still isidentified by plus and minus icons, depending on actual polarity, whilethe new electrode combination is identified by dot icons.

As the current shifting process proceeds, the plus and minus icons forthe current electrode combination reduce in size, e.g., as shown in FIG.20. At the same time, the icons for the new electrode combinationprogress from dots to small plus and minus icons. As the amount ofamplitude shifted from the current electrode combination increases, theplus and minus icons for the current and new electrode combinationsbecome progressively smaller and larger, respectively, until the plusand minus icons for the current electrode combination are transformedinto dots, as shown in FIG. 21. Eventually, the dots vanish, leavingonly the large plus and minus icons associated with the new electrodecombination. Hence, display 255 presents the progression of amplitudeshifting in terms of a change in size and/or appearance of icons used toidentify the electrodes in the respective electrode combinations. Otherdevices may be provided to indicate the progression of amplitudeshifting, however, such as numeric values, percentages, bar graphs,gauges, meters, hourglasses, and the like.

FIG. 22 illustrates a scenario in which the shift from one electrodecombination to another requires that a cathode become an anode, or ananode become a cathode. In the example of FIG. 22, a first electrodecombination including electrodes 1 and 2 is shifted downward on lead 256to a new electrode combination including electrodes 2 and 3. In thiscase, electrode 3 changes polarity from minus to plus. Display 255 mayindicate the progression of the incremental amplitude shifting processin a manner similar to that described above with reference to FIGS.18-21, e.g., by changing the appearance and/or size of the polarityicons. For an electrode, like electrode 2, that transitions from plus tominus, display 255 may present a combined plus/minus (+/−) icon thatindicates the mixed status of the electrode during the transition. Asthe amplitude shifting progresses, the minus icon will become smallerand the plus icon will become larger, until the minus icon vanishesentirely, leaving on the full size plus icon.

FIG. 23 is an exemplary timing diagram 300 illustrating an alternativeprocess for shifting stimulation energy between successive electrodecombinations. Like the process illustrated in FIG. 13, the process ofFIG. 23 shifts stimulation energy between different electrodecombinations. However, the amplitude (current or voltage) of stimulationenergy delivered via an existing electrode combination is maintained ata substantially constant level while the amplitude of stimulation energydelivered via another electrode combination is gradually increased.Accordingly, the amplitudes of the stimulation energy are notsimultaneously decreased and increased for the previous electrodecombination and the new electrode combination, respectively. Instead,the amplitude for the previous electrode combination is held at a targetamplitude level until the amplitude for the new electrode combinationreaches the target amplitude level. The target amplitude levels for theprevious and new electrode combinations may be the same or different.The process illustrated in FIG. 23 may be implemented by programmer 11in combination with stimulator 14.

In the example of FIG. 23, timing diagram 300 illustrates the testing ofthree subsequent electrode combinations, electrode combination 302A,electrode combination 302B, and electrode combination 302C. Timingdiagram 300 is described in terms of electrode combination testing, butsimilar timing mechanisms may be utilized to shift between electrodecombinations associated with different neurostimulation programs duringnormal operation of a stimulator 14. In FIG. 23, for purposes ofillustration, electrode combinations 302A, 302B, and 302C are shown assimple +/− combinations of electrodes on a lead 16. For purposes ofillustration, the exemplary progression between electrode combinations302A, 302B, and 302C is a succession of two downward shifts of the +/−combination on lead 16.

Initially, the amplitude of the one or more stimulation pulses deliveredby electrode combination 302A is increased until it reaches a targetamplitude. The amplitude of the stimulation pulses delivered byelectrode combination 302A is increased incrementally, and theincremental increases proceed automatically or under user control. Asdescribed above, each incremental step may be contingent on input fromthe user or programmer 11 may proceed through the incremental stepsautomatically unless it receives input from the user to stop.

Upon reaching the target amplitude threshold, the amplitude of thestimulation energy delivered via electrode combination 302A levels offto a substantially constant level corresponding to the target amplitudelevel. For transition to another electrode combination 302B, eitherautomatically or under user control, programmer 11 controls theneurostimulator to turn on electrode combination 302B. Programmer 11then controls the stimulator to gradually increase the amplitude ofstimulation energy delivered via electrode combination 302B. While theamplitude is gradually increased for the new electrode combination 302B,amplitude for the previous electrode combination 302A is maintained at asubstantially constant amplitude level.

Hence, the process depicted in FIG. 23 is different from the process ofFIG. 13, in which the amplitude for the previous electrode combinationis gradually decreased while the amplitude for the new electrodecombination is gradually increased. Instead, the amplitude for electrodecombination 302A remains substantially constant until the amplitude forthe second electrode combination 302B reaches its target amplitudelevel, which may be the same or different from the target amplitudelevel for the previous electrode combination 302A.

As in the example of FIG. 13, the initial amplitude of electrodecombination 302B in FIG. 23 may be set at a perception amplitude, i.e.,the lowest amplitude at which the patient may detect stimulation on thatparticular electrode combination. Alternatively, as shown in FIG. 23,the amplitude of electrode combination 302B (as well as 302A and 302C)may be ramped upward from an amplitude level of zero. In either case,according to the process shown in FIG. 23, the amplitude of the previouselectrode combination is maintained at a substantially constant levelwhile the amplitude of the next electrode combination is graduallyramped upward.

One exception to maintaining the amplitude of the previous electrodecombination at a constant level may arise when the user adjusts thetarget amplitude level, in which case, the levels for the previouselectrode combination and new electrode combination may be dynamicallyrescaled in proportion to the new target amplitude level. Rescaling whenthe target amplitude is adjusted will be described in further detailbelow with respect to FIG. 26.

As shown in FIG. 23, programmer 11 incrementally adjusts the stimulationamplitude of electrode combination 302B and interleaves one or moreoutput pulses from electrode combination 302A and electrode combination302B in alternating time slots. In some embodiments, interleaving ofsingle pulses or groups of pulses may cause the patient to feel asensation of substantially continuous stimulation. Programmer 11controls the stimulator to maintain the amplitude of electrodecombination 302A substantially constant at the target amplitude whileconcurrently incrementally increasing the amplitude of electrodecombination 302B toward the target amplitude step by step.

Once the amplitude of the new electrode combination 302B reaches thetarget amplitude, programmer 11 controls the stimulator to graduallydecrease the amplitude of the previous electrode combination 302A.Again, programmer 11 may control such amplitude changes automatically orunder user control. The amplitude of the previous electrode combination302A decreases in multiple steps over a period of time until it reacheszero, in which case electrode combination 302A is turned “OFF.” At thatpoint, only electrode combination 302B is “ON” and continues to deliverstimulation energy at the target amplitude level.

As shown in FIG. 23, the amplitude “curve” for each electrodecombination 302A, 302B, 302C may be characterized by a “frontside”region 303A, 303B, 303C, in which the respective electrode combinationincreases in amplitude from the initial level to the target level, a“backside” region 305A, 305B, 305C, in which the respective electrodecombination decreases in amplitude from the target level to the endlevel, and a “flat” region 307A, 307B, 307C in which the amplitude ofthe respective electrode combination remains substantially constant atthe target amplitude level.

During the amplitude increase on electrode combination 302B, programmer11 may receive input from the user indicating that the stimulation hasbecome uncomfortable, and the programmer decreases the overall intensityof the stimulation at arrow 194 in response to such input. In someembodiments, programmer 11 may decrease the target amplitude and theamplitude of the stimulation pulses applied to electrode combination302B. Also, programmer 11 may decrease the amplitude of the stimulationpulses applied to the previous electrode combination whose amplitude isbeing held constant or incrementally decreasing (i.e., electrodecombination 302A in this example).

In either case, programmer 11 continues to maintain the amplitude of thestimulation pulses delivered to electrode combination 302B at theapplicable target level while the amplitude of electrode combination302A is reduced, eventually to zero. Then, when a transition from thesecond electrode combination 302B to a third electrode combination 302Cis desired, programmer 11 controls the stimulator to maintain theamplitude of electrode combination 302B at a substantially constantlevel, and begins to gradually increase the amplitude of electrodecombination 302C in a series of incremental steps.

When the amplitude of electrode combination 302C reaches a desiredtarget level, programmer 11 controls the stimulator to gradually reducethe amplitude of electrode combination 302B. The process continues untilthe amplitude of electrode combination 302B reaches zero and theelectrode combination 302B is turned “OFF.” At that point, the amplitudeof electrode combination 302C is held constant until a user changes thetarget amplitude or a transition to another electrode combination iscompleted. The transition process continues for each electrodecombination evaluated by the user, and may terminate upon user command,when a predetermined sequence of electrode combinations has beenevaluated, or when all permitted electrode combinations have beenevaluated.

During the amplitude increase on electrode combination 302C, programmer11 may receive input from the user indicating that the stimulation hasbecome too weak, in which case the programmer may increase the targetamplitude level of the stimulation in response to the input. As in thecase of intolerable amplitude, an increase when amplitude is too weaklikewise may result in a rescaling of the amplitude levels of anyelectrode combinations on which the amplitude is being increased,decreased or maintained at a constant level.

In general, as shown in FIG. 23, the first electrode combination 302Aincreases to a target amplitude level in a series of incremental steps.As the amplitude of the second electrode combination 302B graduallyincreases, the amplitude of the first electrode combination 302A is heldconstant. When the second electrode combination 302B reaches its targetamplitude level, however, the amplitude of the first electrodecombination 302A begins to decline.

Both electrode combinations 302A, 302B are at their target amplitudelevels, which may be the same or different, for a moment before theamplitude of the first electrode combination 302A begins to decline.Notably, only one of the electrode combinations 302A, 302B changes itamplitude during each time slot. Each step, also referred to as asubstep, may include one or more time slots. Hence, the amplitudes ofthe electrode combinations change on an interleaved basis in alternatingtime slots. Each time slot carries a single pulse or multiple pulsesfrom the respective electrode combination. As a further characteristicof the process of FIG. 23, in some embodiments, at least one of the twoelectrode combinations is always at its target amplitude level.

The amplitude curve for each electrode combination may be asymmetric. Inparticular, the number of substeps required for the amplitude toincrease from the initial amplitude level (e.g., zero) to the targetamplitude level may be greater than the number of substeps required forthe amplitude to decrease from the target amplitude level to the endingamplitude level. As an illustration, the amplitude for each electrodecombination 302A, 302B or 302C may require nine “forward” substeps toreach the target amplitude level. The substeps are forward in thetemporal sense. Again, substeps refer to the amplitude increase ordecrease in each time slot allocated to a respective electrodecombination 302A, 302B or 302C.

The existing electrode combination remains at the target amplitude leveluntil the next electrode combination reaches that target amplitudelevel, at which time the amplitude for the existing electrodecombination begins to decrease. Although nine forward substeps arerequired, per this illustration, for the electrode combination to reachthe target amplitude level, only five forward substeps are required forthe amplitude to be reduced to its final amplitude, e.g., zero. Hence,with nine forward substeps to reach the target amplitude level, and onlyfive forward substeps to reach the final amplitude level, the amplitudecurve for the electrode combination can be considered asymmetric in thesense that ascent requires more substeps than descent.

In this illustrative example, there may actually be eighteen substepsfor each electrode combination. When the amplitude decreases from thetarget amplitude level, however, movements in the “forward” directionmay include only odd- or even-numbered substeps. In other words, even orodd steps may be skipped as the amplitude decreases from the targetamplitude level to the ending amplitude level. If even substeps areskipped, for example, only five substeps are required to cover the spaceof nine substeps, for a total of 14 forward substeps from start to end,plus any number of time slots during which the electrode combination maybe held at the target amplitude level.

Notably, programmer 11 may permit the user to transition betweenelectrode combinations in both forward and reverse. Forward and reverserefer to movement along the substep or time axis in FIG. 23. Hence, auser may move forward by increasing stimulation amplitude on anelectrode combination 302C and then eventually decreasing amplitude uponcompletion of transition to another electrode combination 302B.Likewise, the user may move in reverse, e.g., by increasing amplitudetoward the target amplitude level along the backside region 305,decreasing amplitude toward the initial amplitude value along thefrontside region 303, or moving in forward or reverse along the flatregion 307. If the user shifts forward past the point at which the nextelectrode combination (e.g., 302B) has reached its target level, forwardsubsteps to decrease the amplitude of the previous combination (e.g.,302A along backside region 305A) proceed only in odd-numbered substeps.However, substeps in the “reverse” direction, such that the amplitude ofthe previous combination (e.g., 302A along backside region 305A)increases along the backside region 305A, may include every substep. Inthis case, the even steps along backside region 305A are not skippedwhen going in reverse.

Consequently, forward and reverse movement along frontside region 303Arequires nine substeps in each direction, while forward movement alongbackside region 305A requires five odd substeps (with skipping of evensubsteps) and reverse movement along backside region 305A requires allnine even and odd substeps. Hence, in the example of FIG. 23, the numberand size of amplitude increments during shifting from one electrodecombination to another electrode combination is not necessarily uniform.Although the frontside and backside regions 303A, 305A of the amplitudecurve include eighteen substeps, the number of substeps is provided forpurposes of illustration and should not be considered limiting of thevarious embodiments of the invention described in this disclosure.Rather, different numbers of substeps and different skipping algorithmsmay be chosen as deemed appropriate for a given application.

Programmer 11 may be configured, in some embodiments, to permit a userto eliminate one of two consecutive electrode combinations uponconclusion of evaluation of the combinations. With reference to FIG. 23,for example, upon transitioning between electrode combinations 302A,302B and 302C, the user may determine that one of the electrodecombination 302B is undesirable or at least no more effective than theadjacent electrode combinations 302A and 302C. In this case, the usermay choose to eliminate electrode combination 302B. As a result, thestimulator applies only one active electrode combination (302A or 302C),instead of two active combinations in an overlapping manner (e.g., 302Aand 302B or 302B and 302C).

A single active program draws less energy than two active programs,promoting increased battery longevity in the stimulator. The user canthen independently refine the stimulation parameters, e.g., amplitude,frequency, pulse width, and electrode polarity, for each electrodecombination 302A, 302C by determining their independent effects. In thismanner, post-processing to eliminate electrode combinations reduces thenumber of active programs applied during the shifting process to promoteincreased battery life as the user continues to evaluate refinements tothe electrode combinations and associated parameters.

FIG. 24 is an exemplary timing diagram illustrating a gradual increasein stimulation energy delivered via a selected electrode combination inaccordance with the alternative shifting process of FIG. 23. The diagramof FIG. 24 represents the first four substeps 304A, 304B, 304C, 304D ofthe frontside region of the amplitude curve for a particular electrodecombination. Again, the frontside and backside region of the amplitudecurve may have nine substeps, subject to skipping of even substepsduring forward movement in the backside region.

In the example of FIG. 24, each substep includes ten stimulation pulses.Although successive substeps 304A, 304B, 304C, 304D are shown adjacentone another in time, each substep may be delivered on an alternatingbasis with a substep for another electrode combination. If stimulationis delivered independently via a single electrode combination, however,the substeps may be delivered successively. In general, the upwardprogression of substeps 304A, 304B, 304C, 304D defines a smoothfrontside curve 303A, with the dots in FIG. 24 representing substeptransition points.

FIG. 25 is an exemplary graph illustrating a process for shiftingstimulation energy from a first electrode combination to a secondelectrode combination in accordance with the alternative shiftingprocess of FIG. 23. FIG. 25 illustrates transition between electrodecombinations 302A and 302B by shifting amplitude. In particular, FIG. 25shows flat region 307A, which represents the maintenance of the firstelectrode combination 302A at a substantially constant target amplitudelevel while the amplitude for the second electrode combination 302Bgradually increases along front-side region 303B. In addition, FIG. 25shows flat region 307B of second electrode combination 302B as amplitudefor the first electrode combination 302A gradually decreases along theback-side region 305A.

In the example of FIG. 25, the front-side and back-side regions areasymmetrical. Again, the amplitude reduction along the back-side regionis accelerated relative to the amplitude increase along the front-sideregion. In other words, the reduction takes less sub-steps than theincrease due to sub-step skipping. In total, it takes fourteen sub-stepsto go from one full shift at which first electrode combination 302A isat the target amplitude level and the next electrode combination 302B isat its initial amplitude level, to the next full shift at which thefirst electrode combination is at its end amplitude level and the nextelectrode combination is at its target amplitude level.

FIG. 26 is an exemplary graph illustrating rescaling of the shiftingprocess of FIG. 25 when a target stimulation amplitude is increased ordecreased in accordance with the alternative shifting process of FIG.23. In the example of FIG. 26, as the amplitude of first electrodecombination 302A is held constant at the target level, and the amplitudeof second electrode combination 302B increases gradually alongfront-side region 303B, the user increases the target amplitude level.In response, programmer 11 controls the stimulator to increase thetarget amplitude levels, resulting in a rescaling of the amplitudecurves upward in the region identified by reference numeral 311.Following the rescaling, the amplitude continues along its ordinarycourse, until the user adjusts the target amplitude level downward,resulting in a rescaling of the amplitude curves downward in the regionidentified by reference numeral 313.

FIG. 27 is an exemplary graph illustrating the interleaving ofstimulation energy to subsequent electrode combinations in order toprovide a smooth shift from a first electrode combination to a secondelectrode combination in accordance with the alternative process of FIG.23. The white columns show the amplitude of one or pulses delivered inrespective time slots for first electrode combination 302A. The blackcolumns show the amplitude of one or more pulses in respective timeslots for second electrode combination 302B. FIG. 27 shows a gradualincrease of the amplitude of electrode combination 302B over a series ofsubsteps. Each substep includes one or more time slots, and each timeslot includes one or more stimulation pulses.

In the example of FIG. 27, each substep includes three time slots, andthe front-side region include seven sub-steps. The time slots areallocated to for delivery of stimulation pulses via electrodecombinations 302A and 302B on an alternating basis. FIG. 27 also shows agradual decrease in the amplitude of electrode combination 302A over aseries of three sub-steps. The number of sub-steps and time slots persub-step are both reduced in FIG. 27, relative to the numbers discussedabove with respect to FIG. 23, for ease of illustration. Accordingly, animplementation may include more sub-steps and more time slots persub-step. In addition, the amplitude increase or decrease per step maybe greater or lesser than that shown in FIG. 27. Also, the sub-steps mayprogress along a logarithmic curve, rather than a linear curve.

FIG. 28 is a flow diagram illustrating exemplary operation of aprogrammer testing electrode combinations in accordance with thealternative amplitude shifting process of FIG. 23. FIG. 28 generallycorresponds to FIG. 9, but illustrates a different approach in which theamplitude of the previous electrode combination is maintained at aconstant level during gradual increase of the amplitude of anotherelectrode combination. In the example of FIG. 28, electrode combinationtesting is performed under user control, with each incremental stepcontingent on receiving input from the user. Initially, programmer 11controls neurostimulator 14 to select a first electrode combination anddelivers a pulse or group of pulses in a time slot via the firstelectrode combination (306). The user may specify which electrodecombination programmer 11 should test during initial configuration.

Programmer 11 next determines whether it has received input from theuser (308) for an increase in amplitude of the stimulation energydelivered via the first electrode combination 302A. The user may, forexample, be a physician, and the physician may actuate a button when apatient indicates that the pulse amplitude is comfortable. In anotherembodiment, patient 12 may be the user, thereby eliminating the need forcommunication between the physician and patient 12. In the example ofFIG. 28, programmer 11 does not increment the stimulation amplitude anyfurther until input is received from the user.

Upon receiving input from the user to indicate that the stimulationamplitudes are comfortable, programmer 11 determines whether thestimulation amplitude of the first electrode combination has reached thetarget amplitude (310). When the stimulation amplitude of the firstelectrode combination 302A is below the target amplitude, programmer 11increases the amplitude of the stimulation of the first electrodecombination by a step (312), and waits for user input (308).

When the stimulation amplitude of the first electrode combinationreaches the target amplitude, programmer 11 turns on a subsequentelectrode combination 302B (314). The subsequent electrode combination302B may be the next electrode combination in a pre-defined sequence ofelectrode combinations. Alternatively, the next electrode combination302B may be selected in response to input from the user, such astime-domain or sequence-domain input identifying a time or positionwithin a sequence, or planar input identifying a direction or location.

Programmer 11 maintains the amplitude level of the first electrodecombination 302A (316) at a constant target level, and increases theamplitude of the subsequent electrode combination by a single step(318). The step may be a fixed linear step or an exponential or otheralgorithmic change such as a logarithm. For example, the first step maybe 10% of the target amplitude. As described above, programmer 11interleaves time slots containing one or more stimulation pulsesprovided to the first electrode combination and the subsequent electrodecombination. The time slots are interleaved at a frequency that providesthe patient with the feeling of a smooth shift between the electrodecombinations.

Programmer 11 waits to receive user input indicating that thestimulation amplitude remains comfortable after step (320). Programmer11 concurrently monitors for mark input from the user (322). Mark inputmay be received when a user determines that a particular setting isefficacious. Upon receiving mark input, programmer 11 stores currentparameter values (324). For example, programmer 11 may store theamplitude values for each of the electrode combinations, i.e., the firstelectrode combination and the subsequent electrode combination.Additionally, programmer 11 may store the current target amplitude.Programmer 11 may return to the marked settings at a later time to allowthe user to optimize the parameters.

Programmer 11 also monitors for amplitude adjustment input from the user(326). Amplitude adjustment information may be received at any timeduring the shifting process. The user can increase or decrease theoverall intensity of stimulation to maintain comfortable sensations thatare strong enough to evaluate the efficacy of the combinations.Programmer 11 adjusts the overall intensity of the stimulation inresponse to receiving input from the user (328). For example, programmer11 may adjust one or both of the stimulation amplitudes applied to thefirst and subsequent electrode combinations as well as the targetamplitude toward which programmer 11 is working. After adjusting thestimulation amplitudes (328), the process of FIG. 28 may continue, e.g.,on an iterative basis, to evaluate additional electrode combinations andstimulation parameter values.

Programmer 11 determines whether the amplitude of the subsequentelectrode combination is at the target amplitude (330). If the amplitudeof the subsequent electrode combination has not reached the targetamplitude, programmer 11 maintains the amplitude of the previouselectrode combination 302A at the constant target level, and increasesthe amplitude of the subsequent electrode combination 302B.Specifically, programmer 11 increases the amplitude of the subsequentelectrode combination one more step. In some embodiments, as mentionedabove, the step size may be different between decreasing amplitude orincreasing amplitude. In other words, amplitude may be ramped upwardsfaster or slower than amplitude ramped downwards.

If the amplitude of the subsequent electrode combination has reached thetarget amplitude level, programmer 11 gradually reduces the amplitude ofthe first electrode combination 302A (332) to its end level, e.g., zero,while maintaining the amplitude of the subsequent combination atsubstantially the target amplitude. Although not illustrated in FIG. 28,programmer 11 may gradually reduce the amplitude of the first electrodecombination in a series of increments, while maintaining the secondcombination at the target amplitude, in response to a series of userinputs. Then, programmer 11 turns on the next subsequent electrodecombination 302C, and maintains the amplitude of the subsequentelectrode combination 302B at the constant target level (316) while theamplitude of the next electrode combination 302C is increased gradually(318). Programmer 11 tests all the electrode combinations of thesequence, transitioning between each one in accordance with the processshown in FIG. 23. Again, the sequence may be a predefined sequence ofadjacent or nonadjacent electrode combinations, or a sequence that isdynamically generated in response to input from the user.

FIG. 29 is another flow diagram illustrating exemplary operation of aprogrammer that receives input from a user to shift between electrodecombinations in accordance with the alternative process of FIG. 23. FIG.29 generally corresponds to FIG. 10, but illustrates a differentapproach in which the amplitude of the previous electrode combination ismaintained at a constant level during gradual increase of the amplitudeof another electrode combination. The electrode combination testing inFIG. 29 is performed under user control, with the incrementaladjustments occurring automatically until programmer 11 receives inputfrom the user.

Initially, programmer 11 controls neurostimulator 14 to turn on a firstelectrode combination 301B and delivers one or more electrical pulsesvia the first electrode combination (336). Programmer 11 determineswhether it has received input from the user indicating that theamplitude of the stimulation is uncomfortable (338). The user may, forexample, be a physician, and the physician may actuate a button or otherinput media when a patient indicates that the stimulation isuncomfortable. Alternatively, the patient may actuate such a button.When programmer 11 receives input from the user indicating that theamplitude of the stimulation is uncomfortable, programmer 11 stops theautomated amplitude adjustments (340).

When programmer 11 does not receive input from the user, programmer 11determines whether the stimulation amplitude of the first electrodecombination has reached the target amplitude or SBC level (342). The SBClevel is a strong but comfortable (SBC) level, measured during acalibration stage, at which patient 12 notices a therapeutic stimulationeffect without the therapy inducing pain or discomfort. The SBC leveldetermined by calibration may serve as a target level. Alternatively, apredetermined target level may be used.

When the stimulation amplitude of the first electrode combination isbelow the target or SBC amplitude level, programmer 11 automaticallyincrements the amplitude of the stimulation of the first electrodecombination by a substep (344). Programmer 11 increases the amplitude bydownloading a program update to the neurostimulator via telemetry. Theautomatic increases in amplitude may occur periodically at a rate of oneevery few seconds, so that there is sufficient spacing between theamplitude adjustments for the patient to distinguish differentstimulation levels and have time to react in the event stimulationquickly becomes uncomfortable. In other embodiments, the rate may beslower or faster.

When the stimulation amplitude of the first electrode combinationreaches the target amplitude, the programmer turns on a subsequentelectrode combination (346). As described above, the subsequentelectrode combination may be the next electrode combination in apre-defined sequence of electrode combinations. In some embodiments, thesubsequent electrode combination may be an adjacent electrodecombination. Programmer 11 maintains the amplitude of the firstelectrode combination (348) at the substantially constant SBC level, andincreases the amplitude of the subsequent electrode combination by asingle substep (350). Programmer 11 interleaves the time slots duringwhich stimulation pulses are provided to the first electrode combinationand the subsequent electrode combination at a frequency that providesthe patient with the feeling of a smooth transition between theelectrode combinations.

Programmer 11 determines whether it has received input from the userindicating that the amplitude of the stimulation is uncomfortable afterthe step (352). When programmer 11 receives input from the userindicating the amplitude of the stimulation is uncomfortable, programmer11 stops the automated amplitude adjustments (340). When programmer 11does not receive input from the user, programmer 11 determines whetherthe amplitude of the subsequent electrode combination is at the SBClevel (354). If the amplitude of the subsequent electrode combinationhas not reached the SBC level, programmer 11 maintains the amplitude ofthe previous electrode combination and incrementally increases theamplitude of the subsequent electrode combination, e.g., by one substep.

If the amplitude of the subsequent electrode combination has reached theSBC amplitude, programmer 11 gradually decreases the amplitude of thefirst electrode combination (356), e.g., by substeps to a zero amplitudeor some other amplitude level, while maintaining the level of the secondelectrode combination, and then turns on the next subsequent electrodecombination in the sequence (358). Programmer 11 begins to incrementallyincreases the amplitude of the next subsequent electrode combinationwhile maintaining the amplitude of the previous electrode combination inthe same manner. Programmer 11 tests the electrode combinations of thesequence, shifting between each one in accordance with the alternativetechnique outlined in FIG. 23. Programmer 11 may also concurrentlymonitor for mark input from the user for amplitude adjustment input fromthe user as described in detail in FIG. 28.

FIG. 30 is a flow diagram illustrating exemplary operation of aprogrammer that receives input from a user, such as programmer 50 ofFIG. 5, shifting between electrode combinations in accordance with thealternative technique of FIG. 23. Initially, programmer 50 receivesinput from a user via controller 54 (359). Programmer 50 maps themanipulation of controller 54 to a particular electrode combination(361). As mentioned previously, programmer 50 may, for instance, accessa map that maps X-Y coordinates of the directional controller tocombinations of electrodes on leads 16. Alternatively, programmer 50 mayuse input from controller 54 to select successive electrodecombinations, e.g., by array pointers, without regard to directional orlocation information.

Programmer 50 controls neurostimulator 14 to turn on the electrodecombination identified by the mapping (363) and gradually increases theamplitude of the electrode combination to a target level. Programmer 50maintains the amplitude of the first electrode combination (365) at thetarget amplitude, and gradually increases the amplitude of a subsequentelectrode combination by a single substep (367). As described above,programmer 50 interleaves the time slots during which stimulation pulsesare provided to the first electrode combination and the subsequentelectrode combination (369).

Programmer 50 monitors for either mark input or amplitude adjustmentinput from the user (371). As described in detail above, mark input maybe received when the user determines that a particular setting isefficacious. Upon receiving mark input, programmer 50 stores currentparameter values, e.g., the amplitude values for one or both of theelectrode combinations as well as the current target amplitude.Amplitude adjustment input may be received at any time during theshifting process, which may result in rescaling of the amplitude curvesas described with respect to FIG. 26. Programmer 50 adjusts the overallintensity of the stimulation in response to receiving input from theuser by adjusting one or both of the stimulation amplitudes of the firstand subsequent electrode combinations as well as the target amplitudetoward which programmer 50 is working.

Programmer 50 determines whether the stimulation amplitude of the newlymapped electrode combination has reached the target amplitude (373).When the stimulation amplitude of the mapped electrode combination isbelow the target amplitude, programmer 50 maintains the amplitude of thefirst electrode combination (365) at the target level and increases theamplitude of the subsequent electrode combination by another substep(367). Each incremental adjustment of stimulation amplitude may occurautomatically, or be contingent on receiving input from the user. If theamplitude of the mapped electrode combination has reached the targetamplitude, programmer 50 gradually decreases the amplitude of the firstelectrode combination (375) while maintaining the amplitude of the newelectrode combination at the target level.

The gradual decreases (375) may be performed automatically, e.g.,without user intervention, at a series of predetermined intervals.Alternatively, each incremental decrease may be performed in response toa user input. For example, a user may control progression of theamplitude increases and decreases for the first and second electrodecombinations by a series of user inputs that specify substeps inamplitude adjustment. In some embodiments, the substeps may be takenforward or in reverse, as will be described in detail. As anillustration, a user may click an up, down, forward or reverse arrowrepeatedly to increase the amplitude of one electrode combination anddecrease the amplitude of another electrode combination in a series ofcontrolled, incremental steps.

FIG. 31 is a flow diagram illustrating exemplary operation of aneurostimulator, such as neurostimulator 14 of FIG. 1, shifting betweenelectrode combinations while switching neurostimulation therapy programsaccording to the alternative technique shown in FIG. 23. Initially,neurostimulator 14 receives input identifying the need to switch betweenprograms (377). As described with reference to FIG. 12, neurostimulator14 may include one or more detectors that detect variables such asmovement of a patient, heart rate of a patient or the like, and identifythe need to switch between programs based on a change in one of themeasured variables. Alternatively, neurostimulator 14 may receive inputfrom a patient programmer indicating that the patient would like tochange programs, or that the patient will be changing position orposture, and correlate that input with the need to switch therapyprograms.

When neurostimulator 14 switches programs, it turns on the electrodecombination associated with the new program (379). Neurostimulator 14maintains the amplitude of the electrode combination associated with theprevious program at a substantially constant target level (381) andincreases the amplitude of the electrode combination associated with thesubsequent program by an incremental step (383). Programmer 50interleaves the time slots during which stimulation pulses are providedto electrode combinations (385).

Neurostimulator 14 determines whether the stimulation amplitude of theelectrode combination associated with the new program has reached thetarget amplitude (387). If not, neurostimulator 14 maintains theamplitude of the electrode combination associated with the previousprogram at the substantially constant target level (381) and increasesthe amplitude of the electrode combination associated with the newprogram by another incremental substep (383). If the amplitude of theelectrode combination associated with the new program has reached thetarget amplitude, neurostimulator 14 gradually reduces the amplitude ofelectrode combination associated with the previous program (389), andeventually turns off the previous electrode combination. Then,neurostimulator 14 maintains the amplitude of the current program, andmonitors for the next input identifying a need to switch programs.

FIGS. 32-39 are graphs illustrating a shifting process in accordancewith the alternative technique of FIG. 23 in conjunction with anexemplary screen shot 400 of a programmer illustrating a correspondingelectrode diagram and stimulation parameters. In particular, FIGS. 32-39illustrate progress along the amplitude shifting curves given a sequenceof user inputs. In FIGS. 32-39, there are eighteen substeps, consistentwith the example of FIG. 23, because some steps on the backside regionmay be skipped when going forward past the midpoint at which bothelectrode combinations are at the target level.

In the example of FIGS. 32-39, electrical stimulation energy is shiftedfrom a first electrode combination 302A (Lead I: 3−, 4+) to a secondelectrode combination 302B (Lead I: 4−, 5+). FIGS. 32-39 showprogression of the shifting process, including forward and reverseprogression along the amplitude curves associated with electrodecombinations 302A and 302B. As indicated by arrow 402, FIG. 32represents the start of the shifting process, at which the amplitude ofelectrode combination 302A is at the target level, and the amplitude ofelectrode combination 302B is at an initial amplitude level, e.g., zero.

The programmer screen shot 400 in FIG. 32 illustrates allocation of allamplitude to the bipolar electrode combination of electrode 3 (−) andelectrode 4 (+) on lead I. At this point, there is no progression ofamplitude shifting to the next electrode combination formed by thebipolar electrode combination of electrode 4 (−) and electrode 5 (+).Screen shot 400 includes a diagram of leads and associated electrodes,current parameter settings, such as voltage or current amplitude (e.g.,5.0 V), pulse width (e.g., 210 microseconds), and pulse rate (e.g., 50Hz). Screen shot 400 includes a mark input 406 to permit a patient tomark particular combinations, and input arrows 408 to permit shifting ofstimulation energy among different electrode combinations.

FIG. 33 represents the progression of the shifting process to the pointthat the amplitude of first electrode combination 302A, which has beenmaintained at the target level, and the amplitude of second electrodecombination 302B are at the same target level. The extent of theprogression is represented in terms of amplitude sub-steps by arrow 402and arrows 404. Each arrow 404 represent a single substep. In theexample of FIG. 33, the amplitude on electrode combination 302B hasprogressed nine substeps along the frontside region of the amplitudecurve to the target level. In other words, the user has made ninesubsteps “down” the lead I, bringing the shifting program amplitudes forelectrode combinations 302A and 302B to the midpoint of the curve, i.e.,both are at the target amplitude

After this midpoint, the amplitude on electrode combination 302A willbegin to gradually decrease. In the screenshot 400 of FIG. 33, the sizeof the minus sign on electrode 3 has decreased, electrode 3 presents acombined plus and minus sign, and a small plus sign is visible inelectrode 5, signifying the approximate midpoint of the transitionbetween electrode combinations 302A and 302B. In addition, a progressbar 410 is provided to indicated the extent of the transition betweenelectrode combinations 302A and 302B.

FIG. 34 represents the progression of the shifting process to the pointthat the amplitude of first electrode combination 302A has begun togradually decrease along the backside region of its amplitude curve, asindicated by arrow 402A, while the amplitude of second electrodecombination 302B is maintained at the substantially constant targetlevel, as indicated by arrow 402B. Arrow 404 shows that the shifting hasprogressed by eleven substeps. As shown in the example of FIG. 34, thebackside and frontside regions of electrode combinations 302A and 302B,respectively, appear symmetrical. When the amplitude curve is on thebackside region, however, some of the backside substeps may be skippedsuch that the backside and frontside regions of electrode combinations302A and 302B, respectively, are asymmetrical. In the example of FIG.34, the progression from substep 9 to substep 11 represents a singlesubstep, as substep 10 is skipped on the progression down the backsideregion. Arrow 405 represents the skipping of substep 10 so that theamplitude progresses directly from substep 9 to substep 11.

FIG. 35 represents the progression of the shifting process one moresubstep in the forward direction. With skipping of substep 12, theprogression of FIG. 35 goes directly from substep 11 to substep 13, asindicated by arrow 407. With backside skipping, fourteen substeps (nineon the frontside and five on the backside) bring the progression to thenext full step at substep 18). As the progression has passed themidpoint, progress bar 410 in screen shot 400 shows the progress if morethan halfway along the length of the bar. In addition, the appearance ofthe plus and minus signs on the lead diagram changes. For example, thesize of the minus sign on electrode 3 is diminished, the combinedplus/minus sign on electrode 4 is more predominantly a minus sign, andthe plus sign on electrode 5 is larger.

FIG. 36 represents the progression of the shifting process when the usermoves one substep in the reverse direction. The sense of “reverse”depends on the initial movement direction. If the initial movement is tothe right, i.e., from electrode combination 302A to electrodecombination 302B, then “reverse” movements are to the left. Likewise, ifthe initial movement is to the left, i.e., from electrode combination302B to electrode combination 302A, then “reverse” movements are to theright.

Although substeps are skipped in the backside region in the forwarddirection, substeps are not skipped in the backside region in thereverse direction. Accordingly, the amplitude curve progresses fromsubstep 13 to substep 12, as indicated by arrow 409. In this case, theamplitude for electrode combination 402B remains at the target level,but the amplitude for electrode combination 402A increases by onesubstep. As shown in the graphs of FIGS. 32-39, amplitude may beexpressed as a percentage of the target amplitude. The progress bar 410and lead diagram change in appearance to match the reverse progressalong the amplitude curve.

FIG. 37 shows progression of the shifting process when the user movesseveral additional substeps in the reverse direction, relative to FIG.36. The reverse substeps are represented by arrows 411, and move theamplitude to substep 5. At substep 5, the amplitude for electrodecombination 302B is maintained at the constant target level, while theamplitude for electrode combination 302B is at approximately 70% of thetarget amplitude level. In FIG. 37, there is no skipping of substeps inthe reverse direction. Accordingly, each substep corresponds to a singlesubstep. The progress bar 410 and lead diagram change in screen shot 400in accordance with the progress represented by the amplitude curve inthe graphs of FIG. 37.

FIG. 38 shows progression of the shifting process when the user movesseveral substeps in the forward direction, from substep 5 to substep 15.The first four substeps, indicated by reference numeral 412, are singlesubsteps from substep 5 to substep 9. As the substeps extend pastsubstep 9, however, skipping of substeps applies. Skipping applies inthe backside region of the amplitude curve as amplitude on electrodecombination 302A decreases. Hence, the substeps between substep 9 andsubstep 15 are double substeps, represented by arrow 414. The progressbar 410 and lead diagram change in screen shot 400 in accordance withthe progress represented by the amplitude curve in the graphs of FIG.38.

FIG. 39 shows completion of the transition of stimulation amplitude fromelectrode combination 302A to electrode combination 302B. As shown inFIG. 39, the amplitude of electrode combination 302B is at the targetlevel, and the amplitude of electrode combination 302A is at the endlevel, e.g., zero. Screen shot 400 illustrates full transition of theamplitude shifting process. For example, electrodes 4 and 5 on lead Ihave full-sized minus and plus signs, respectively. In addition, theprogress bar 410 shows progress along the entire length of the bar. Uponcompletion of the shifting process, the user may elect to shiftamplitude from electrode combination 302B to another electrodecombination, following a course similar to that shown in FIGS. 33-39.

Although this disclosure has referred to neurostimulation applicationsgenerally, and spinal cord stimulation applications more particularly,such applications have been described for purposes of illustration andshould not be considered limiting of the invention as broadly embodiedand described herein. The invention may be more generally applicable toelectrical stimulation of tissue, such as nerve tissue or muscle tissue,and may be applicable to a variety of therapy applications includingspinal cord stimulation, pelvic floor stimulation, deep brainstimulation, cortical surface stimulation, neuronal ganglionstimulation, gastric stimulation, peripheral nerve stimulation, orsubcutaneous stimulation. Such therapy applications may be targeted to avariety of disorders such as chronic pain, peripheral vascular disease,angina, headache, tremor, Parkinson's disease, epilepsy, urinary orfecal incontinence, sexual dysfunction, obesity, or gastroparesis. Also,the invention is not necessarily limited to use with completelyimplanted neurostimulators, and may also be applicable to externalstimulators coupled to implanted leads via a percutaneous port.

Various embodiments of the invention have been described. These andother embodiments are within the scope of the following claims.

1. A method comprising: delivering electrical stimulation to a patientvia a first subset of a plurality of electrodes; delivering electricalstimulation to the patient via a second subset of the electrodes; andreceiving a signal representative of a time-domain input that specifiesincrementally adjusting a level of at least one of the electricalstimulation delivered to the patient via the first subset of theelectrodes and the electrical stimulation delivered to the patient viathe second subset of the electrodes along a pre-defined sequence ofsteps.
 2. The method of claim 1, wherein the time-domain input comprisesactuation of control inputs including play, rewind, stop, andfast-forward inputs.
 3. The method of claim 2, wherein the controlinputs each define a progression through the pre-defined sequence ofsteps.
 4. The method of claim 1, further comprising receiving thetime-domain input from a user in an external programmer, wherein thesignal is received from the external programmer.
 5. The method of claim1, further comprising automatically proceeding through the pre-definedsequence of steps until the signal representative of the time-domaininput is received.
 6. The method of claim 1, further comprising, inresponse to receiving the signal representative of the time-domaininput, automatically proceeding through the pre-defined sequence ofsteps.
 7. The method of claim 1, wherein delivering electricalstimulation to the patient via the second subset of the electrodescomprises delivering electrical stimulation to the patient via thesecond subset of the electrodes on a time-interleaved basis with theelectrical stimulation delivered via the first subset of the electrodes.8. The method of claim 1, further comprising incrementally adjusting thelevel of at least one of the electrical stimulation delivered to thepatient via the first subset of the electrodes and the electricalstimulation delivered to the patient via the second subset of theelectrodes according to the received signal.
 9. The method of claim 8,wherein incrementally adjusting the level of electrical stimulationcomprises one of incrementally increasing or incrementally decreasingthe level of electrical stimulation.
 10. The method of claim 1, furthercomprising presenting a graph with the pre-defined sequence of steps viaa user interface.
 11. The method of claim 1, further comprising skippingone or more steps in the pre-defined sequence of steps whenincrementally decreasing the level of electrical stimulation.
 12. Themethod of claim 1, wherein a signal representative of the time-domaininput one of specifies the input in the time-domain or specifies theincremental adjustment pre-determined by an external programmer based ontime-domain input from a user.
 13. A medical device comprising: meansfor delivering electrical stimulation to a patient via a first subset ofa plurality of electrodes; means for delivering electrical stimulationto the patient via a second subset of the electrodes; and means forreceiving a signal representative of a time-domain input that specifiesincrementally adjusting a level of at least one of the electricalstimulation delivered to the patient via the first subset of theelectrodes and the electrical stimulation delivered to the patient viathe second subset of the electrodes along a pre-defined sequence ofsteps.
 14. The medical device of claim 13, wherein the time-domain inputcomprises actuation of control inputs including play, rewind, stop, andfast-forward inputs.
 15. The medical device of claim 14, wherein thecontrol inputs each define a progression through the pre-definedsequence of steps.
 16. The medical device of claim 13, furthercomprising means for automatically proceeding through the pre-definedsequence of steps until the signal is received.
 17. The medical deviceof claim 13, further comprising means for automatically proceedingthrough the pre-defined sequence of steps in response to receiving thesignal representative of the time-domain input.
 18. The medical deviceof claim 13, wherein the means for delivering electrical stimulation tothe patient via the second subset of the electrodes comprises means fordelivering electrical stimulation to the patient via the second subsetof the electrodes on a time-interleaved basis with the electricalstimulation delivered via the first subset of the electrodes.
 19. Themedical device of claim 13, further comprising means for incrementallyadjusting the level of at least one of the electrical stimulationdelivered to the patient via the first subset of the electrodes and theelectrical stimulation delivered to the patient via the second subset ofthe electrodes according to the time-domain input.
 20. The medicaldevice of claim 19, wherein the means for incrementally adjusting thelevel of electrical stimulation comprises means for one of incrementallyincreasing or incrementally decreasing the level of electricalstimulation.
 21. The medical device of claim 13, wherein the means forreceiving the signal comprises means for receiving the signal from anexternal programmer configured to present a graph with the pre-definedsequence of steps.
 22. A medical device comprising: an electricalstimulation generator configured to deliver electrical stimulation to apatient via a first subset of a plurality of electrodes and deliverelectrical stimulation to the patient via a second subset of theelectrodes; and a controller configured to receive a signalrepresentative of a time-domain input that specifies incrementallyadjusting a level of at least one of the electrical stimulationdelivered to the patient via the first subset of the electrodes and theelectrical stimulation delivered to the patient via the second subset ofthe electrodes along a pre-defined sequence of steps.
 23. The medicaldevice of claim 22, wherein the time-domain input comprises controlinputs including play, rewind, stop, and fast-forward inputs.
 24. Themedical device of claim 23, wherein the control inputs each define aprogression through the pre-defined sequence of steps.
 25. The medicaldevice of claim 22, wherein the controller is configured toautomatically proceed through the pre-defined sequence of steps untilthe signal is received.
 26. The medical device of claim 22, wherein thecontroller is configured to automatically proceed through thepre-defined sequence of steps in response to receiving the signalrepresentative of the time-domain input.
 27. The medical device of claim22, wherein the electrical stimulation generator is configured todeliver electrical stimulation to the patient via the second subset ofthe electrodes on a time-interleaved basis with the electricalstimulation delivered via the first subset of the electrodes.
 28. Themedical device of claim 22, wherein the electrical stimulation generatoris configured to incrementally adjust the level of at least one of theelectrical stimulation delivered to the patient via the first subset ofthe electrodes and the electrical stimulation delivered to the patientvia the second subset of the electrodes according to the time-domaininput.
 29. The medical device of claim 28, wherein the electricalstimulation generator is configured to one of incrementally increase orincrementally decrease the level of electrical stimulation.
 30. Themedical device of claim 22, wherein the controller is configured toreceive the signal from an external programmer comprising a userinterface configured to present a graph with the pre-defined sequence ofsteps.
 31. The medical device of claim 22, wherein the signal receivedby the controller is representative of a non-directional time-domaininput.
 32. A method comprising: delivering electrical stimulation to apatient via a first subset of a plurality of electrodes; deliveringelectrical stimulation to the patient via a second subset of theelectrodes; and receiving a time-domain input in an external programmerfrom a user, wherein the time-domain input specifies incrementallyadjusting a level of at least one of the electrical stimulationdelivered to the patient via the first subset of the electrodes and theelectrical stimulation delivered to the patient via the second subset ofthe electrodes along a pre-defined sequence of steps.
 33. The method ofclaim 32, further comprising transmitting a signal representative of thetime-domain input to an implantable medical device configured to deliverelectrical stimulation, wherein the signal specifies the incrementaladjustment.
 34. A system comprising: an implantable medical deviceconfigured to deliver electrical stimulation to a patient via a firstsubset of a plurality of electrodes and deliver electrical stimulationto the patient via a second subset of the electrodes; and an externalprogrammer configured to receive a time-domain input from a user,wherein the time-domain input specifies incrementally adjusting a levelof at least one of the electrical stimulation delivered to the patientvia the first subset of the electrodes and the electrical stimulationdelivered to the patient via the second subset of the electrodes along apre-defined sequence of steps.
 35. The system of claim 34, wherein theexternal programmer is configured to transmit a signal representative ofthe time-domain input to the implantable medical device, and wherein thesignal specifies the incremental adjustment.